Petits malins dans mes formulaires

Tim
Eléphanteau du PHP | 25 Messages

25 juil. 2008, 16:49

Bonjour. Je suis presque débutant en php. J'ai néanmoins réussi à créer un formulaire (on arrête de rire !) qui renvoie des infos par mail au webmaster. Le soucis, c'est que j'ai régulièrement des données farfelues avec des url de sites commerciaux basés à l'étranger. Comment faire pour éviter que ces personnes (ou leur logiciels, moteurs, etc) trouvent mes pages de formulaires ?
Merci de votre aide.
Le risque zéro n'existe pas...

Mammouth du PHP | 959 Messages

25 juil. 2008, 20:19

Comment faire pour éviter que ces personnes
Ben... c'est pas des personnes, c'est des robots...

Regarde ça ;)

Petit nouveau ! | 2 Messages

28 juil. 2008, 23:41

La réponse est simple:

1) tu crées un dossier que tu baptises comme tu veux.
2) tu pose ton formulaire dedans
3) tu mets un fichier texte .htacces et un fichier texte .htpassword
tu trouvera cela sur le net avec beaucoup d'exemple.

Ensuite quiquonque voudra arriver sur cette url devra d'abord taper un mot de passe que tu auras défini.

Mammouth du PHP | 2937 Messages

29 juil. 2008, 09:59

Ensuite quiquonque voudra arriver sur cette url devra d'abord taper un mot de passe que tu auras défini.
Encore faut-il que l'utilisateur le sache. :roll:

Quant à la solution du captcha en image, à trop vouloir être sophistiquée, elle finit par devenir de moins en moins accessible. Si un captcha doit être utilisé, autant privilégier un captcha textuel, posant des questions du type "Quelle est la couleur du cheval blanc d'Henri IV ?" ou "Combien font 3 + 5 ? (réponse en toutes lettres)".

Une autre piste consisterait à vérifier, lors de la validation du formulaire, que les données renseignées dans les champs correspondent bien à celles auxquelles l'on s'attend (par exemple, s'il s'agit de renseigner un code postal en France, vérifier qu'on a bien 5 chiffres) : si ce n'est pas le cas, on génère un message d'erreur comme quoi certains champs ne sont pas renseignés en bonne et due forme.

Si tu as un champ qui doit renseigner une URL, tu peux en vérifier la validité syntaxique grâce à la fonction filter_var() (si tu es sous PHP 5.2) et même vérifier qu'elle ne fait pas partie d'une "liste noire", que tu peux constituer en t'aidant de listes noires existantes, comme celle de Chongqed.

ViPHP
ViPHP | 5924 Messages

29 juil. 2008, 10:24

Ou la solution triviale du champ fake :
Un champ texte masqué que tu nommes 'post', s'il est rempli, c'est un spammeur, et un champ texte normal que tu nommes 'spam'. Les utilisateurs rempliront le champ 'spam', les spammeurs le champ 'post'...