34 votes

Bonne sécurité des formulaires - pas de CAPTCHA

Existe-t-il une bonne méthode de sécurisation du formulaire qui implique not de CAPTCHA? CAPTCHA est tellement énervant, mais j'ai besoin de sécurité car je reçois du spam. Mon formulaire est PHP.

40voto

Eric Petroelje Points 40734

Voici ce que j'ai trouvé pour être très efficace (et très simple):

  1. Mettre un champ caché dans le formulaire. Donnez-lui un nom comme "téléphone" ou quelque chose de similaire a/commun et de mettre en défaut une valeur indésirable.

  2. Mettre un autre habitué champ de saisie de texte sur votre formulaire, mais la cacher avec les CSS. Font que l'on vide. Encore une fois, de lui donner un "vrai" nom à consonance (prenom, phone_number, peu importe).

  3. Lorsque le formulaire est affiché, vérifiez que le champ masqué a encore de la valeur par défaut et le champ caché avec CSS est toujours vide.

Vous êtes essentiellement en tirant parti du fait que la plupart des robots de spam seront il suffit de remplir tous les champs dans le formulaire, afin d'éviter l'absence d'un champ obligatoire des contrôles de validation. Certains sont peut-être assez intelligent pour ignorer les champs cachés, mais je n'ai jamais vu un qui a été assez intelligent pour ignorer les champs cachés avec les CSS.

ETA: Pour répondre à certains commentaires - Est-ce vraiment une "sécurité" du système? non, il n'est certainement pas. Il serait trivialement brisé par quelqu'un qui voulait cibler spécifiquement votre site. Cela dit, il est encore très efficace contre la forme automatisée spam bots que la plupart de "faible valeur" sites à voir.

Si vous souhaitez arrêter un attaquant déterminé, vous aurez besoin de quelque chose d'un peu plus envahissantes. Une autre affiche mentionné Akismet, ce qui est une bonne option. Re-Captcha est un autre. L'arrêt déterminé, ciblée des spammeurs est si dur. Même Yahoo et Google ont un moment difficile avec elle.

16voto

John Conde Points 102874

Essayez Akismet . C'est excellent pour signaler le spam. L'API est facile à utiliser et totalement transparente pour vos utilisateurs.

12voto

maček Points 25640

Ce genre de validateur est mignon et rapide!

Boîte de chat

De toute évidence, vous souhaiterez afficher l'une des nombreuses images d'animaux possibles, et la liste devra également être randomisée.

Je comprends que cela ne fonctionnera que X% du temps, mais l’ajout de plus d’options à la liste contribuera à réduire le spam.

2voto

Dave Jarvis Points 12598

Si le temps nécessaire pour soumettre le formulaire était inhumainement rapide, ce n'était probablement pas un humain.

2voto

Milos Points 182

J'ai déjà travaillé quelque chose de similaire.

  1. Lorsque vous ouvrez un formulaire de générer un md5() string et le mettre dans la session (par exemple $_SESSION['captha'])
  2. Votre formulaire doit avoir un champ caché, et lorsque vous ouvrez cette forme d'écriture de ces données à partir de $_SESSION['captha'] dans ce champ caché
  3. Lorsque vous recevez ce poste demande de comparer la valeur de session et la valeur qui viennent avec ce champ caché. Si c'est le même everithing est ok et vice versa. Bien sûr, après vous gérer cette demande, il suffit de supprimer la variable $_SESSION['captha'].

Ce travail pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X