plugin form antispam anti forms spam-prevention honeypot

forms - form - no captcha recaptcha



Mejor Implementación de Honeypot(Formulario Anti-Spam) (2)

¿Cómo nos deshacemos de estos spambots en nuestro sitio?

Cada sitio es víctima de spambots en algún momento. La forma en que lo maneja puede afectar a sus clientes, y la mayoría de las soluciones pueden desanimar a algunas personas a completar sus formularios.

Ahí es donde entra en juego la técnica de honeypot. Le permite ignorar los robots de spam sin obligar a los usuarios a completar un captcha o saltar a través de otros aros para completar su formulario.

Esta publicación es simplemente para ayudar a otros a implementar una trampa de honeypot en los formularios de sus sitios web.

Actualizar:

Desde la implementación del siguiente honeypot en todos los sitios web de mis clientes, hemos bloqueado exitosamente el 99.5% (miles de envíos) de todo nuestro spam. Esto es sin utilizar las técnicas mencionadas en la sección "avanzada", que se implementará pronto.


Concepto

Al agregar un campo invisible a sus formularios que solo pueden ver los spambots, puede engañarlos para que revelen que son spambots y no usuarios reales.

HTML

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

Aquí tenemos una simple casilla de verificación que:

  • Está oculto con CSS.
  • Tiene un nombre oscuro pero obviamente falso.
  • Tiene un valor por defecto equivalente a 0.
  • No puede ser llenado por autocompletar
  • No se puede navegar a través de la tecla Tab . (Ver tabindex )

Lado del servidor

En el lado del servidor, queremos comprobar si el valor existe y tiene un valor distinto de 0, y si es así, manejarlo adecuadamente. Esto incluye el registro del intento y todos los campos enviados.

En PHP podría verse algo como esto:

$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 }

Retroceder

Aquí es donde entra el registro. En el caso de que de alguna manera uno de sus usuarios termine siendo marcado como spam, su registro lo ayudará a recuperar cualquier información perdida. También le permitirá estudiar los bots que se ejecutan en su sitio, en caso de que se modifiquen en el futuro para burlar su honeypot.

Informes

Muchos servicios le permiten reportar las IP conocidas de spambot a través de una API o cargando una lista. (Por ejemplo, CloudFlare ) Ayude a hacer de Internet un lugar más seguro informando todos los correos electrónicos de spam y spam que encuentre.

Avanzado

Si realmente necesita acabar con un spambot más avanzado, hay algunas cosas adicionales que puede hacer:

  • Ocultar el campo de honeypot únicamente con JS en lugar de CSS simple
  • Use nombres de entrada de formulario realistas que en realidad no usa. (como "teléfono" o "sitio web")
  • Incluir la validación de formularios en el algoritmo honeypot. (la mayoría de los usuarios finales solo obtendrán 1 o 2 campos incorrectos; los spambots normalmente obtendrán la mayoría de los campos incorrectos)
  • Use un servicio como CloudFlare que bloquea automáticamente las IP conocidas de spam
  • Tener tiempos de espera de formulario, y evitar la publicación instantánea. (Los formularios enviados en menos de 3 segundos de la carga de la página suelen ser spam)
  • Evita que cualquier IP publique más de una vez por segundo.
  • Para obtener más ideas, consulte aquí: Cómo crear un honeypot "nuclear" para atrapar a los spammers.

Una sugerencia para forzar realmente el no-autocompletado:
cambiar autocomplete="off" por autocomplete="nope" O autocomplete="false"

Como el valor dado no es válido (los valores para autocomplete solo están off o off ), el navegador dejará de intentar completar el campo.

Para más detalles, cómo desactivar el autocompletado de formularios .

Espero que esto ayude.

SYA :)