web-dev-qa-db-fra.com

Comment protéger un formulaire contre le spam?

J'ai compilé une liste d'éléments pouvant protéger un formulaire Web de span. Lesquels sont réellement efficaces? S'il vous plaît n'hésitez pas à ajouter des éléments supplémentaires.

  • Stocker un code en tant que champ caché et le vérifier lors de sa soumission.
  • Utilisez jQuery pour définir les champs de méthode et d'action après le chargement de la page.
  • (Aussi) Utilisez jQuery pour encoder l'URL de l'action
  • Encodez l'intégralité du formulaire Web et utilisez jQuery pour le décoder après le chargement de la page.
  • Utilisez AJAX au lieu de l'action standard du bouton d'envoi.
  • Utilisez CAPTCHA
  • Placez des champs du formulaire masqués par CSS que seuls les robots vont trouver et remplir.
  • Temps d'enregistrement entre le chargement de la page et la soumission, ignorer si moins de 1 seconde.
  • Chargez le formulaire dans la page via AJAX, une seconde après le chargement de la page.
6
Hoytman

De loin, ma technique préférée s'appelle un "pot de miel". Voici comment ça marche ...

Dites que votre formulaire demande un nom. Placez les deux champs suivants sur la page:

<span class='hp'>
  <label for='Message'>Message:</label >
  <textarea id='Message' name='message' />
</span>
<span>
  <label for='TmpField'>Message:</label >
  <textarea id='TmpField' name='tmpField' />
</span>

Faites la première partie avec la classe hp masquée via CSS. C'est le pot de miel. Le bot ne verra pas les CSS, il va donc essayer de remplir le champ message avant de soumettre le formulaire. Les utilisateurs ne verront que tmpField et y entreront leur message. (Il est évident que votre code de traitement de formulaire doit être sur la ruse.)

Dans votre code de traitement de formulaire, supprimez simplement toute entrée où le champ message contient du contenu. Ignore le. Continuez comme si de rien n'était. Vous ne voulez certainement pas dire aux robots spammeurs "Oh, ça n'a pas marché" pour qu'ils puissent réessayer.

Chez Glassdoor, nous constatons que cette technique supprime presque TOUS les spams grâce à nos formulaires.

3
Ron Lussier

D'après mon expérience personnelle, j'ai constaté que CAPTCHA est pratiquement inefficace pour prévenir les attaques de spam. Ce que j’utilise et que j’ai trouvé le plus utile est d’ajouter un champ au formulaire et de le recouvrir de CSS afin qu’il ne soit pas exposé à des visiteurs humains. Les robots de spam apportent une valeur à ces champs et peuvent être facilement bloqués. C’est plus simple que toutes les solutions que vous avez proposées, élégant, très efficace, fonctionne très bien avec des personnes ne disposant pas de la technologie ajax/js et n’affecte pas l’expérience utilisateur (contrairement à CAPTCHA).

2
Rana Prathap