mieux proteger mon site contre des attaques

WRInaute occasionnel
Bonjour,
Ce matin, j'ai subit une petite attaque sur un de mes sites.
Une personne ou un robot (je n'ai aucune trace dans mes stats) est venu s'inscrire 3 fois en mettant un genre de code pour le pseudo et en m'envoyant des email par le formulaire de contact du site.
J'ai modifier un peu le script d'inscription pour mieux proteger mon site mais il y a truc que je ne comprend pas:
Dans un champs de ma base de donnée, il y avait une adresse email alors que la valeur ne doit etre que oui ou non. La valeur vient d'un input type="radio" ou il faut sélectioner oui ou non.

Comment a t-il fait pour mettre une adresse dans ce champs?
Que faut-il faire pour que ca ne se reproduise plus?
 
WRInaute passionné
Vérifier ce que tu insert dans ta base de donnée!

Pour cela utilise les regex (expressions régulières), et je te conseille le site "regexp"
 
WRInaute occasionnel
je les utilise déja pour certains champs

mais je ne comprend pas comment la personne ou le robot a réussi a mettre une adresse email dans un champs où il ne devrait y avoir que le mot oui ou non
 
WRInaute discret
Si c'est un robot ou un script, il peut construire la trame HTTP entièrement et donc envoyé n'importe quoi comme valeur d'un champ de type post...

Avec certaines API de développement, il est aussi facile d'envoyer des données en POST que tu le ferais en GET

(un truc du type compte.valide.php?age=essai&sexe=nimportequoi)
 
WRInaute accro
...

... il a pu aussi poster sur ta page via un autre formulaire en faisant pointer le action de la balise form sur ta page.

Il existe même des softs pour poster sur les pages, comme le dit tom_pascal.

Dès lors modifier les valeurs du POST devient aussi facile que de modifier les valeurs du GET.
 
WRInaute passionné
de plus, un champ qui contient oui ou non doit etre de type char(3) et non varchar(1500000) !!!

et de plus bis, si c'est pour mettre du oui ou du non dans une bdd, mieux faut mettre un champ de type int(1) !
 
WRInaute occasionnel
zimounet a dit:
de plus, un champ qui contient oui ou non doit etre de type char(3) et non varchar(1500000) !!!
Je l'ai modifié après l'attaque.
Avant, j'utilisais souvent vachar(255) mais j'ai eu des problèmes de longueur et on m'a conseillé "text". Pour plus de facilité, j'avais mis tout les champs en text => grosse erreur.

zimounet a dit:
et de plus bis, si c'est pour mettre du oui ou du non dans une bdd, mieux faut mettre un champ de type int(1) !
le problème c'est qu'il faut je change beaucoups de chose
Maintenant j'utilise 1 ou 2 quand il y a 2 choix

UsagiYojimbo a dit:
... voire Enum si la base de donnée est en MySQL.
Enum, c'est juste pour un nombre?
 
WRInaute occasionnel
thierry8 a dit:
N'est-il pas possible de vérifier que l'adresse mail saisie est correcte et existante ?

j'utilise ceci pour la saisie d'une adresse email mais ca ne vérifie pas si elle existe
Code:
if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $email)) //verification de l'email
{
   //code a exécuter
}
 
WRInaute accro
silverbeach a dit:
thierry8 a dit:
N'est-il pas possible de vérifier que l'adresse mail saisie est correcte et existante ?

j'utilise ceci pour la saisie d'une adresse email mais ca ne vérifie pas si elle existe
Code:
if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $email)) //verification de l'email
{
   //code a exécuter
}

En effet, justement, il me semble que la mesure la plus fiable serait de tester si un mail existe...

(finallement non, cela n'exclus pas d'utiliser une adresse bidon pour un message bidon)

donc je :arrow:
 
WRInaute discret
Tu peux aussi verifier que l'IP ne soit pas déjà utilisée dans une inscription précédente, ça évitera le flood d'inscription.

Ensuite un "code-image" peut gener pas mal de robots...
 
WRInaute occasionnel
Bahanix a dit:
Tu peux aussi verifier que l'IP ne soit pas déjà utilisée dans une inscription précédente, ça évitera le flood d'inscription.

oui, c'est une protection que je pourrai ajouter mes dans mon cas du matin, ca n'aurait rien changé car c'est 3 ip differentes
 
WRInaute occasionnel
Je suppose qu'on sait voir les attaques dans les logs mais je ne comprend rien dans les logs

Connaissez-vous de la bonne documentation sur les logs et sur les protections des scripts?
 
Discussions similaires
Haut