¡Cuando los bots ataquen! [cerrado]


¿Cuáles son algunos métodos populares de prevención de spam además de CAPTCHA?

Author: AviD, 2008-09-21

27 answers

He intentado hacer 'honeypots' donde pones un campo y luego lo ocultas con CSS (marcándolo como 'dejar en blanco' para cualquier persona con hojas de estilo deshabilitadas) pero he encontrado que muchos bots pueden superarlo muy rápidamente. También hay técnicas como establecer campos a un cierto valor y cambiarlos con JS, calcular los tiempos entre el tiempo de carga y el tiempo de envío, verificar la URL del remitente y un millón de otras cosas. Todos tienen sus trampas y casi todo lo que puedes esperar es filtra todo lo que puedas con ellos sin alienar a quien estás aquí: los usuarios.

Al final del día, sin embargo, si realmente, realmente, no quieres que los bots envíen cosas a través de tu formulario, vas a querer poner un CAPTCHA en él, el mejor que he visto que se ocupa de casi todo es reCAPTCHA, pero gracias al mercado de solución de CAPTCHA de India y el ingenio de los spammers en todas partes, ni siquiera es exitoso todo el tiempo. Me cuidaría de usar algo eso es 'ingenioso', pero un poco 'por ahí', ya que sería más de un' wtf ' para los usuarios que están al menos un poco acostumbrados a sus CAPTCHAs habituales.

 23
Author: Paolo Bergantino,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 18:35:00

Impactante, pero casi todas las respuestas aquí incluyen alguna forma de CAPTCHA. La operación quería algo diferente, supongo que tal vez quería algo que realmente funciona, y tal vez incluso resuelve el problema real.
CAPTCHA no funciona, e incluso si lo hizo - es el problema equivocado - los humanos todavía pueden inundar su sistema, y por definición CAPTCHA no detendrá eso (porque está diseñado solo para decir si usted es un humano o no - no es que lo hace tan bien...)

Entonces, ¿qué otras soluciones ¿están allí? Bueno, depende... en su sistema y sus necesidades. Por ejemplo, si todo lo que intentas hacer es limitar cuántas veces un usuario puede completar un formulario de "Contáctame", simplemente puedes limitar cuántas solicitudes puede enviar cada usuario por hora/día/lo que sea. Si sus usuarios son anónimos, tal vez necesite acelerar de acuerdo con las direcciones IP, y ocasionalmente incluir una IP en la lista negra (aunque esto también se puede eludir y causa otros problemas).
Si te estás refiriendo a un foro o blog comentarios (como este), bueno, cuanto más lo uso, más me gusta la solución. Una mezcla entre usuarios autenticados, autorización (basada en la reputación, no es probable que se acumule a través de la inundación), limitación (cuántos puede hacer al día), el CAPTCHA ocasional y, finalmente, moderación de la comunidad para limpiar los pocos que pasan - todos se combinan para proporcionar una solución decente. (Me pregunto si Jeff puede proporcionar alguna información sobre la cantidad de spam y otros mensajes incorrectos que realmente pasan...?)

Otro control a considerar (no sé si lo tienen aquí), es algún tipo de IDS/IPS - si puedes detectar y reconocer spam, puedes bloquear ESE patrón. Moderación llena esa necesidad manualmente, aquí...

Tenga en cuenta que cualquiera de estos no impide el spam, pero disminuye gradualmente la probabilidad, y por lo tanto la rentabilidad. Esto cambia la ecuación económica, y deja que CAPTCHA realmente proporcione el valor suficiente para que valga la pena, ya que ya no vale la pena para que los spammers se molesten en romperlo o rodearlo (gracias a los otros controles).

 19
Author: AviD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 20:42:51

Dar al usuario la posibilidad de calcular:

¿Cuál es la suma de 3 y 8?

Por cierto: Acabo de navegar por un enfoque interesante de Microsoft Research: Asirra.

Http://research.microsoft.com/asirra /

Te muestra varias imágenes y tienes que identificar las imágenes con un motivo determinado.

 12
Author: Johannes Hädrich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 18:15:30

Intenta Akismet

Captchas o cualquier forma de preguntas solo humanas son horribles desde una perspectiva de usabilidad. A veces son necesarios, pero prefiero matar el spam usando filtros como Akismet.

Akismet se construyó originalmente para frustrar los comentarios de spam en los blogs de WordPress, pero la API puede ser adaptada para otros usos.

Update : Hemos empezado a usar la biblioteca ruby Rakismet en nuestra aplicación Rails, Yarp.com . So hasta ahora, ha estado funcionando muy bien para frustrar los robots de spam.

 10
Author: Ryan McGeary,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-01-08 03:56:29

Un método muy simple que no carga al usuario es simplemente deshabilitar el botón enviar por un segundo después de que la página haya sido cargada. Lo usé en un foro público que tenía mensajes de spam continuos, y los detuvo desde entonces.

 7
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 19:59:10

Ned Batchelder escribió una técnica que combina hashes con honeypots para una prevención de bots perversamente efectiva. Sin captchas, solo código.

Está en Detener los robots de spam con hashes y honeypots :

En lugar de detener a los bots haciendo que las personas se identifiquen, podemos detener a los bots haciendo que les resulte difícil hacer una publicación exitosa, o haciendo que se identifiquen inadvertidamente como bots. Esto quita la carga de la gente, y deja el formulario de comentarios libre de medidas anti-spam visibles.

Esta técnica es como prevengo los robots de spam en este sitio. Funciona. El método descrito aquí no mira el contenido. Se puede aumentar con la prevención basada en contenido como Akismet, pero me parece que funciona muy bien por sí mismo.

 7
Author: joemurphy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-01 02:58:34

Http://chongqed.org / mantiene listas negras de fuentes de spam activas y las URL que se anuncian en los spams. He encontrado mensajes de filtrado para que este último sea muy efectivo en los foros.

 5
Author: moonshadow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 18:55:43

Los más comunes que he observado se orientan alrededor de la entrada del usuario para resolver rompecabezas simples, por ejemplo, de los siguientes es una imagen de un gato. (mostrando imágenes de miniaturas de perros que rodean a un gato). O simples problemas matemáticos.

Aunque es interesante, estoy seguro de que la carrera armamentista también abrumará a esos sistemas.

 4
Author: stephbu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 18:16:59

Puede usar Recaptcha para al menos hacer que un captcha sea útil. Luego puede hacer preguntas con problemas simples de matemáticas verbales o similares. Microsoft Asirra te hace encontrar fotos de gatos y perros. Requerir una dirección de correo electrónico válida para activar una cuenta detiene a los spammers cuando no obtendrían suficientes beneficios del servicio, pero también podría disuadir a los usuarios normales.

 4
Author: jjrv,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 18:19:13

Lo siguiente es inviable con la tecnología actual, pero no creo que esté demasiado lejos. También es probable que sea excesivo para tratar con el spam del foro, pero podría ser útil para los registros de cuentas, o cualquier situación en la que desee estar realmente seguro de que estaba tratando con humanos y que estarían preparados para que tome unos minutos para completar el proceso.

Tener 2 usuarios que están tratando de probarse a sí mismos humanos conectarse entre sí a través de sus cámaras web y preguntarles si la persona que son ver es humano y vivo (es decir, no una grabación), haciendo que, por ejemplo, reflejen los movimientos del otro, o escriban algo en un pedazo de papel. Haz que todo el mundo haga esto un par de veces con diferentes usuarios, y lanza algunas grabaciones en la mezcla que también tienen que identificar correctamente como tal.

 3
Author: Sam Hasler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-24 01:57:45

Un método popular en los foros es simplemente poner en cola los hilos de los miembros con menos de 10 mensajes en una cola de moderación. Por supuesto, esto no ayuda si no tienes moderadores, o no es un foro. Un método más general es el cálculo de las relaciones de hipervínculo a texto. A menudo, las publicaciones de spam contienen una tonelada de hipervínculos, y puedes atrapar mucho de esta manera. En la misma línea está comparando el contenido de publicaciones consecutivas. Simplemente no permita que los mensajes consecutivos que son extremadamente similar.

Por supuesto, cualquiera que tenga conocimiento de las medidas que toma va a ser capaz de sortearlas. Para ser honesto, hay poco que puedas hacer si eres el objetivo de un ataque específico. Más bien, debe centrarse en la prevención de ataques más generales y no calificados.

 3
Author: user7545,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-24 02:04:35

Para los moderadores humanos, seguramente ayuda poder encontrar y eliminar fácilmente todos los mensajes de alguna IP, o todos los mensajes de algún usuario si el bot es lo suficientemente inteligente como para usar una cuenta registrada. Del mismo modo, la opción de bloquear fácilmente direcciones IP o cuentas durante algún tiempo, sin más administración, disminuirá la carga administrativa para los moderadores humanos.

Usar cookies para hacer que los bots y los spammers humanos crean que su publicación es realmente visible (mientras que solo ellos mismos lo ven) evita que ellos (o trolls) cambien las técnicas. Deje que los spammers y trolls vean los otros mensajes de spam y troll.

 3
Author: Arjan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-18 16:12:11

Técnicas de evaluación de Javascript como esta Captcha Invisible el sistema requiere que el navegador evalúe Javascript antes de que se acepte el envío de la página. Se cae muy bien cuando el usuario no tiene Javascript habilitado con solo mostrar una prueba CAPTCHA convencional.

 2
Author: Jon Galloway,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 18:15:29

Captchas animadas - texto de desplazamiento - todavía fácil de reconocer por los seres humanos, pero si se asegura de que ninguno de los marcos ofrecen algo completo para reconocer.

Pregunta de opción múltiple - Todo lo que se necesita es un ______ y una sonrisa. la idea aquí es que el usuario tendrá que elegir/entender.

Variable de sesión - comprobar que una variable que se pone en una sesión es parte de la solicitud. frustrará los bots tontos que simplemente generan solicitudes, pero probablemente no los bots que se modelan como un navegador.

Math question - 2 + 5 = - esto de nuevo es hacer una pregunta que es fácil de resolver pero evita que los bots puedan generar una respuesta.

Cuadrícula de imágenes - crea una cuadrícula de imágenes - seleccione 1 o 2 de un tipo particular, como una cuadrícula de 3x3 de animales y tiene que seleccionar todas las aves en la cuadrícula.

Espero que esto le dé algunas ideas para su nueva solución.

 2
Author: MikeJ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 18:41:32

Un amigo tiene el método anti-spam más simple, y funciona.

Tiene un cuadro de texto personalizado que dice "por favor escriba el número 4".

Su blog es bastante popular, pero aún no lo suficientemente popular como para que los bots lo descubran (todavía).

 2
Author: ripper234,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 19:06:24

Recuerde hacer que su solución sea accesible para aquellos que no utilizan navegadores convencionales. La multitud de iPhone no debe ser ignorada, y aquellos con problemas de visión y cognitivos tampoco deben ser excluidos.

 2
Author: Loofer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 21:14:13

Los Honeypots son un método eficaz. Phil Haack da uno buen método honeypot, que podría ser utilizado en principio para cualquier foro/blog/etc.

También puedes escribir un rastreador que siga los enlaces de spam y analice su página para ver si es un enlace genuino o no. Lo más obvio serían las páginas con una copia exacta de tu contenido, pero podrías elegir otros indicadores.

Moderación y listas negras, especialmente con complementos como estos para WordPress (o independientemente de lo que esté utilizando, el software similar está disponible para la mayoría de las plataformas), funcionará en un entorno de bajo volumen. Si su entorno es de bajo volumen, no subestime la ventaja que esto le da. Decidir personalmente qué es contenido razonable y qué no lo es le da la máxima flexibilidad en el control de spam, si tiene tiempo.

No olvide, como otros han señalado, que los CAPTCHAs no se limitan al reconocimiento de texto de una imagen. Asociación visual, problemas matemáticos y otros las preguntas no subjetivas transmitidas a través de una imagen también califican.

 2
Author: Dustman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-23 02:12:35

Sblam es un proyecto interesante.

 2
Author: Michal M,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-18 16:05:04

Campos de formulario invisibles. Crea un campo de formulario que no aparezca en la pantalla para el usuario. usando display: none como estilo css para que no aparezca. Por el bien de la accesibilidad, incluso podría poner texto oculto para que las personas que usan lectores de pantalla sepan que no deben rellenarlo. Los bots casi siempre rellenan todos los campos, por lo que puedes bloquear cualquier publicación que rellene el campo invisible.

 1
Author: Kibbee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 18:18:19

Bloquear el acceso basado en una lista negra de direcciones IP de spammers.

 1
Author: Chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 18:19:33

Las técnicas Honeypot ponen un señuelo invisible en la parte superior de la página. Los usuarios no lo ven y envían el formulario correcto, los bots envían el formulario incorrecto que no hace nada o prohíbe su IP.

 1
Author: Jon Galloway,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 18:20:28

He visto algunas ideas interesantes en la línea de Asira que te piden que identifiques qué imágenes son gatos. Creo que la idea se originó de KittenAuth hace un tiempo..

 1
Author: Jon Cage,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-23 02:35:26

Use algo como el etiquetador de imágenes de Google con imágenes elegidas apropiadamente de tal manera que una computadora no sería capaz de reconocer las características dominantes de la misma que un ser humano podría.

Al usuario se le mostraría una imagen y tendría que escribir palabras asociadas con ella. Seguirían mostrándose imágenes hasta que hayan escrito suficientes palabras que estén de acuerdo con lo que los usuarios anteriores habían escrito para la misma imagen. Algunas imágenes serían nuevas con las que no se estaban probando, pero fueron incluidos para registrar qué palabras están asociadas con ellos. Dependiendo de su audiencia, también podría elegir imágenes que solo ellos reconocerían.

 1
Author: Sam Hasler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-24 01:57:08

Mollom es supuestamente bueno para detener el spam. Tanto la versión personal (gratuita) como la profesional están disponibles.

 1
Author: Pieter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-11-07 22:56:31

Sé que algunas personas mencionaron ASIRRA, pero si vas a todos los enlaces de adopt me para las imágenes, dirá en esa página enlazada si es un gato o un perro. Por lo tanto, debería ser relativamente fácil para un bot ir a todos los enlaces de adoptme. Así que es solo cuestión de tiempo para ese proyecto.

 1
Author: tooleb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-01-16 16:17:15

Simplemente verifique la dirección de correo electrónico y deje que google/yahoo, etc. se preocupe por ello

 1
Author: MatthewFord,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-18 15:55:22

Podría obtener algún software de identificación de dispositivo the41 tiene algún software de prevención de fraude que puede detectar el hardware que se utiliza para acceder a su sitio. Creo que lo usan para atrapar a los estafadores, pero podría usarse para detener a los bots. Una vez que haya identificado un dispositivo que está siendo utilizado por un bot, puede bloquear ese dispositivo. La última vez que lo comprobó, incluso puede rastrear su ruta a través de la red telefónica (¡No su Geo-IP !! ) por lo que incluso puede bloquear un código postal si lo desea.

Es caro a través de so prop. una mejor solución más barata que es un poco menos hermano mayor.

 -2
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-23 13:36:14