web-dev-qa-db-fra.com

Meilleure implémentation de Honeypot (formulaire anti-spam)

Comment pouvons-nous nous débarrasser de ces spambots sur notre site?

Chaque site est victime de spambots à un moment donné. Votre gestion peut affecter vos clients et la plupart des solutions peuvent décourager certaines personnes de remplir vos formulaires.

C’est là que la technique du pot de miel entre en jeu. Elle vous permet d’ignorer les spambots sans obliger vos utilisateurs à remplir un captcha ou à parcourir d’autres cerceaux pour remplir votre formulaire.

Ce message est uniquement destiné à aider les autres utilisateurs à mettre en œuvre un piège pot de miel sur les formulaires de leur site Web.


Mettre à jour:

Depuis la mise en œuvre du pot de miel ci-dessous sur tous les sites Web de mes clients, nous avons bloqué avec succès 99,5% (des milliers de soumissions) de tous nos spams. C'est sans utiliser les techniques mentionnées dans la section "avancée", qui sera bientôt implémentée.

39
Nicholas Summers

Pojęcie

Vous avez déjà un formulaire de demande, mais vous ne trouvez pas votre nom dans la liste, tout ce que vous devez savoir, tout ce qu'il faut savoir sur ce qu'il en est, tout ce qu'il faut savoir sur ce qu'il faut faire.

HTML

<input type="checkbox" name="contact_me_by_fax_only" value="1" style="display:none !important" tabindex="-1" autocomplete="off">

Tutaj mamy proste pole wyboru, które:

  • Jest ukryty z CSS.
  • Ma niejasne, ale oczywiście fałszywe imię.
  • Ma domyślną wartość równoważną 0.
  • Nie można wypełnić autouzupełnianiem
  • Nie można przejść do za pośrednictwemTabKlawisz. (Patrz tabindex )

Po stronie serwera

Vous êtes le premier à écrire un commentaire sur ce que vous voulez, un livre de poche, un livre de poche, à ce sujet. Obejmuje to rejestrowanie próby i wszystkich przesłanych pól.

W PHP moe wyglądać mniej więcej tak:

$honeypot = FALSE;
if (!empty($_REQUEST['contact_me_by_fax_only']) && (bool) $_REQUEST['contact_me_by_fax_only'] == TRUE) {
    $honeypot = TRUE;
    log_spambot($_REQUEST);
    # treat as spambot
} else {
    # process as normal
}

Se retirer

W tym miejscu pojawia się dziennik. Cliquez sur le lien suivant pour afficher le spam, annoter le spam, télécharger le code postal, cliquez sur le lien ci-dessous pour obtenir des informations supplémentaires. Pozwoli to również na badanie dowolnych botów działających na Twojej stronie, jeśli zostaną un zmodyfikowane w przyszłości avec ce obejścia twojego honeypota.

Raportowanie

Cliquez sur le lien ci-dessous pour obtenir l'adresse IP spambota za pośrednictwem interfejsu API lub przesyłanie listy. (Takich jak (CloudFlare ) Pomóż uczynić Internet bezpieczniejszym miejscem, zgłaszając wszystkie znalezione adresy IP spamu i spamu.

Zaawansowane

Jeśli naprawdę musisz rozprawić si z bardziej zaawansowanym spambotem, możesz zrobić kilka dodatkowych rzeczy:

  • Ukryj pole poteau de miel wyłącznie za pomocą JS zamiast zwykłego CSS
  • Uyj realistycznych nazw formularzy, których nie używasz. (np. „telefon” lub „strona internetowa”)
  • Dołącz walidację formularza w algorytmie honeypota. (większość użytkowników końcowych otrzyma tylko 1 lub 2 poles; spamboty będą zazwyczaj mylą większość pól)
  • Vous êtes ici: CloudFlare, télécharger automatiquement le code postal du spam
  • Voir tous les avis sur le pays et les nations. (1) Natychmiastowe wysyłanie wiadomości. (formularze przesyłane w ciągu 3 sekund od wczytania strony są zazwyczaj spamem)
  • Zapobiegaj publikowaniu adresów IP więcej niż raz na sekundę.
  • Ce qu'il faut savoir: Jak utworzyć „Nuklearny” honeypot do przechwytywania spamerów
87
Nicholas Summers

Une suggestion pour vraiment forcer la non-complétion automatique:
changer autocomplete="off" par autocomplete="nope" OR autocomplete="false" 

Comme la valeur donnée n'est pas valide (les valeurs pour autocomplete ne sont que on ou off), le navigateur cessera d'essayer de remplir le champ. 

Pour plus de détails, Comment désactiver le remplissage automatique de formulaire

J'espère que cela t'aides.

SYA :)

9
LebCit

Nous avons constaté qu’une légère (bien que simple) variation des suggestions suggérées avait une énorme incidence sur l’efficacité de notre pot de miel. En bref, changez le champ caché en une entrée de texte et faites en sorte que le bot pense que c'est un mot de passe. Quelque chose comme ça:

<input type="text" name="a_password" style="display:none !important" tabindex="-1" autocomplete="off">

Vous noterez que cette entrée de mot de passe simulé respecte les mêmes règles de base que l'exemple de case à cocher. Et oui, une saisie de texte (par opposition à une saisie de mot de passe) semble bien fonctionner.

Ce changement apparemment mineur a entraîné une baisse drastique du spam pour nous.

1
yodarunamok