Pregunta

¿Qué mecanismos conoce para evitar que spammers anónimos abusen de su sitio?

Por ejemplo, digamos que tengo un sitio donde la gente puede votar algo.Pero yo no Quiero que alguien envíe algo spam hasta llegar a la cima.Entonces encontré (a) crear una cuenta y solo me permitieron votar una vez y (b) CAPTCHA para disminuir el spam.¿Qué otros métodos conoces y qué tan bien funcionan?

¿Fue útil?

Solución

Lo más importante que he notado es que hagas lo que hagas, quieres que tu sistema sea único.Quiere que un atacante tenga que adaptar su programa de automatización a su sitio específico, en lugar de simplemente lanzarle un script preexistente que funcionará en casi cualquier lugar.Ni siquiera tiene que ser criptográficamente seguro;sólo tiene que hacer que su sitio sea un poco diferente de la norma.

Esto no significa que no puedas o no debas usar algo como un widget captcha prediseñado.¡Absolutamente usa uno de esos como punto de observación!Simplemente significa que tienes que personalizarlo en algún lugar para que suceda algo adicional que esté fuera de la norma y rompa cualquier script preexistente que normalmente podría anularlo.

Si su sitio crece lo suficiente como para que los atacantes se dirijan específicamente a él, entonces su pequeña y simple personalización probablemente ya no aguante y es posible que deba hacer algo un poco más especial y pensar en la criptografía real y todo eso.Pero esa es una de esas cosas que es un "buen" problema tener.

Otros consejos

alt text

De xkcd

Para un sistema CAPTCHA, recomiendo de todo corazón reCAPTCHA.

Los CAPTCHA tradicionales generados por computadora eventualmente se romperá desarrollando un sistema suficientemente inteligente.Por ejemplo, aquí hay alguien quien afirma romper el CAPTCHA de Google, antes considerado inquebrantable, con una tasa de acierto del 30%.reCAPTCHA, por definición, muestra sólo imágenes que no pueden reconocerse mediante el reconocimiento óptico de caracteres.

Y al mismo tiempo, el esfuerzo de sus usuarios se dirigirá al bien común: ayudan a digitalizar libros reconociendo palabras que no se pueden reconocer automáticamente.

Ver aquí para obtener más explicaciones y probarlo.

  • Limite el número de votos por dirección IP por vez
  • Bloquear proxies anónimos.
  • Para votar:¿Qué tal barajar el valor que debe devolver el formulario "por sesión"?Una vez que "1" significa el primer elemento, "2" significa el segundo.Entonces "77" significa el primer elemento, "812" significa el segundo,...Podría haber algunas matemáticas simples detrás de escena, pero evita que los usuarios envíen la misma consulta HTTP una y otra vez.
  • Lo que me ha funcionado muy bien:Utilice formularios AJAX, no formularios HTTP simples.Técnicamente, no es mucho más complicado falsificar votos, pero he escrito un software de blog simple y su único mecanismo de protección contra SPAM es enviar los comentarios a través de AJAX; hasta ahora no hay SPAM.

Soy fanático del CAPTCHA del "campo oculto".No recuerdo dónde leí sobre esto, pero la idea es esta:

  • crea tu formulario como de costumbre
  • agregue un campo adicional pero ocultelo (es decir, style="display:none" en el div o fila de la tabla circundante)
  • después del envío, si el campo está en blanco, realice la acción adecuada (por ejemplo, envíe un correo electrónico);si el campo ha sido completado, entonces es un remitente robot

El único caso en el que esto falla es si el navegador del usuario no maneja CSS (o lo tiene apagado), lo cual es muy raro.

¡Cobran por los votos, como lo hacen en algunos programas de televisión sobre "talentos", y reciben spam hasta el banco!

En serio, este es un problema realmente difícil, y algún día (tal vez pronto, si escuchas a Ray Kurzweil), las computadoras realizarán pruebas para descartar a los humanos.Las respuestas que estoy agregando a la lista tienen inconvenientes obvios, pero solo por enumeración:moderación (hacer que los humanos hagan las pruebas) y seguimiento basado en IP (limitar la cantidad de votos de un anfitrión).

stackoverflow tiene algunas características que ayudan con esto;Creo que el paso más útil que puedes tomar es desactivar la capacidad de votar de los usuarios anónimos y de las cuentas nuevas.De esta manera, nadie puede registrarse en cientos de cuentas y usar su único voto para dominar a otros usuarios.Yo diría que requerir algunas publicaciones o membresía por un cierto período de tiempo son opciones decentes.

Algunos dirían que se podría permitir un voto por dirección IP para ayudar a solucionar este problema, pero he jugado muchos juegos en los que usuarios malintencionados con un número casi infinito de servidores proxy desafiaban la seguridad basada en direcciones IP.Es un elemento disuasorio, pero un usuario experto lo sorteará fácilmente.

Esta es el área de estudio de Computación humana.

Hay un excelente video de Luis von Ahn aquí:http://video.google.com/videoplay?docid=-8246463980976635143

Hay algunas ideas en las respuestas a la ¿El mejor CAPTCHA sin imágenes? Pregunta si aún no lo has visto.

Normalmente uso una combinación de los dos:El usuario anónimo es libre de navegar por todo, pero si quiere votar, debe registrarse.

En el proceso de registro, dependiendo de la situación, utilizo un optin a través de correo (para completar el registro y confirmar que al menos el buzón existe) y/o un CAPTCHA.

A partir de ese momento podrás decidir si el usuario puede votar más de una vez, o cualquier otra regla.

Por cierto, no soy partidario de las restricciones basadas en IP:Hay muchas situaciones en las que la red de una gran organización utiliza pocas IP para todos sus usuarios, por lo que el riesgo de bloquear a los usuarios que podrían votar es alto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top