13/11-2006 à 22:03Tu es certain que ce n'est pas plutôt un bot qui a rempli le formulaire ?
Le moyen classique pour parer à ce genre d'invasion est de demander à l'utilisateur de saisir un code de vérification, soit en l'écrivant en texte, soit (pour plus de sécurité) en générant une image via php en jouant avec des couleurs/tailles de typos différentes et en ajoutant du "bruit" autour pour éviter les bots particulierement vicieux qui utilisent la reconnaissance de caractères.
Bien entendu ce code devra être généré aléatoirement (ou du moins etre différent à chaque fois). Je me suis jamais vraiment posé la question, mais comme ça a priori, je m'orienterais vers un code créé à partir du numero d'id du message, pour pouvoir facilement faire la vérification ensuite.
Ensuite au moment de traiter ta méthode post, tu compares ce code avec ce qu'il devrait être, et voilà.
onKeypress="
if (event.keyCode==60 || event.keyCode==62) event.returnValue = false;
if (event.which==60 || event.which==62) return false;"
De toutes manières, ton script javascript a une faille absolument énorme. J'irais même jusqu'à dire qu'il ne sert strictement à rien : Tu empêches effectivement l'utilisateur d'appuyer sur les touches "<" et ">", mais tu oublies qu'un bot n'a pas besoin d'appuyer sur les touches d'un clavier, il se contente de remplir le champ directement.
Pour t'en persuader, essaye de faire un copier-coller du texte que tu cites ("<DEFAULT> (<Default>) à écrit le lundi 13 novembre 2006..." etc.)...
Ah ben oui, comme ça on peut utiliser < et > autant qu'on veut
![[:D]](/medias/forum/images/smileys/4.gif)
Il serait plus efficace de vérifier après coup qu'aucun de ces caractères n'est présent dans le message, soit en javascript au moment ou l'utilisateurs clique sur le bouton, soit en php au moment du traitement.
Voilà, en esperant t'avoir un peu aidé.
----------
