Sistema antispam para blogs

32 comentarios · 18.435 lecturas · manuales

¡OJO! Este artículo está indicado para programadores interesados en evitar spam en su blog.

Varios lectores de Emezeta y algunos amigos me han preguntado en muchas ocasiones como consigo evitar los terribles ataques de spam que afectan a casi todos los blogs.

¿Quién no ha recibido una horda de comentarios en perfecto inglés felicitandonos por nuestro sitio e invitando a ingresar a un casino online, alargar ciertas partes de nuestro cuerpo o tomar pastillitas azules cuál protagonista de Matrix o de otras películas menos conocidas?

Hace tiempo, hablé de SpamPoison, un sistema para «envenenar» listas de correo de spammers. Ahora voy a hablar de una técnica que he ideado (desconozco si ya existía, yo al menos la comencé a utilizar a base de pruebas) para evitar el spam en blogs, al más puro estilo de una trampa para ratones.

trampa ratones

Ventajas del sistema antispam: Hasta el día de hoy no he tenido ningún problema. El sistema atrapa todos los comentarios de spammers, dejando pasar sólo a los usuarios legítimos.

Desventajas: Puede generar confusión a usuarios que utilicen navegadores de tipo texto, pero además de poco frecuente es muy improbable, puesto que estos usuarios son bastante experimentados. Es posible, también, que si este sistema se comienza a implementar, los spammers busquen formas de «reventarlo».

antispam emezeta

Para implementar el sistema antispam utilizaremos PHP (o cualquier lenguaje del lado del servidor que dominemos) y CSS. ¡Si! ¡Has leído bien! ¡¡CSS!!.

¿Y cómo es posible? ¡CSS es un lenguaje para visualización y no para programación! Fácil, en realidad lo que hacemos con nuestro sistema es obligar a ir por un camino a los spammers y por otra a los usuarios legítimos.

Vamos a centrarnos en el formulario de envio de comentarios. Por norma general, tiene varios campos (input o textarea) para enviar la información. Cómo mínimo nombre y comentario, frecuentemente también el correo, página web y/u otros.

La gracia del asunto está en un campo input de texto ubicado al principio del formulario.

antispam emezeta

Dicho campo de texto (que le pondremos de nombre name) tiene un valor por defecto (por ejemplo, el texto: duquesadealba.). Además de esto, le aplicaremos un estilo CSS: display: none. Con esto ocultaremos el campo de forma que NO es visible para los usuarios, pero sí lo es para los robots o spammers.

¿Fácil, no? Pero aún no hemos terminado. El formulario, cómo todo form de su género que se precie, nos llevará a un script (PHP, ASP, etc...) que tratará el comentario para añadirlo a la base de datos, etc...

El truco del sistema antispam reside en que los spammers, por naturaleza, cambian todos los campos llamados comment, comentario, name o nombre por la publicidad que quieren hacer. ¡Perfecto! Ellos mismos han caído.

antispam emezeta

Un usuario legítimo no verá el campo oculto con CSS y por lo tanto enviará el comentario con la palabra que hemos elegido para identificar usuarios legítimos: «duquesadealba». En cambio, un spammer llegará al formulario y reemplazará el campo llamado name pensando que se trata del nombre y mostrando así el plumero.

Sólo resta añadir una comprobación en el script que recibe los comentarios, para que si el campo «name» no contiene la palabra escogida, no lo añada a la base de datos.

Se puede mejorar el sistema, añadiendo una lista de palabras clave personalizadas, en lugar de una sola palabra.

Y, como ya dije antes, los usuarios con navegadores de tipo texto (que no interpretan CSS) si que verán ese campo «oculto», pero podría bastar con poner un texto «no modificar» o algo similar.


Evitando spammers y trolls

6 comentarios · 3.857 lecturas · blogs

Ya he hablado con anterioridad sobre sistemas de protección antispam para evitar bots que dejen publicidad en comentarios o referers, pero antes de continuar, hagamos una aclaración para los despistados:

Spam:
Mensajes basura, publicidad no deseada.

Existen muchos métodos ideados para combatir estas plagas de spam. La idea es bloquear el acceso a aquellos usuarios (o robots) que acceden a nuestro sitio expresamente para dejar publicidad. Un método bastante usado es el conocido CAPTCHA, una pregunta al usuario en cuestión en la que se muestra un gráfico con letras y/o números no-interpretables por una máquina para verificar si se trata realmente de una persona o un robot.

captcha

Este sistema -que comenzó a usarse sobre el año 2000- ha funcionado bastante bien, aunque acarrea cierta desgana a los usuarios. M. Almeida modificó ligeramente este sistema para hacerlo más agradable a los visitantes y que siguiera evitando sólo a las máquinas (bueno... y a algún usuario despistado) pidiendo introducir el apellido de Manuel.

Existen más sistemas para evitar el spam cómo por ejemplo Spam Poison, que se encarga de envenenar a los robots que recogen correos e-mail por la red. Además, manipulando el htaccess como nos hace referencia Inma, podemos deshacernos de muchos spammers.

El problema llega cuando de lo que nos queremos deshacer no es sólo de spammers, sino de trolls. Otra definición para despistados:

Trolls:
Persona que provoca y escribe mensajes incendiarios para incitar al caos en una discusión.

Debemos tener en cuenta nuevos conceptos para evitar a los trolls. La norma por excelencia es moderar los comentarios, bien no dejando pasar ninguno hasta que se revisen (como creo que hace minid, corrijanme si me equivoco) o suprimiendo la opción de comentar, como recientemente hicieron los Microsiervos (en mi opinión una lástima, pero poniendome en su pellejo, comprendo que fue necesario porque no sabemos discutir).

Sin embargo, el sistema que quizás mejor esta funcionando (en mi humilde opinión claro) es el de establecer un Karma, como han hecho los chicos de Barrapunto o meneame:

Karma:
El Karma es un sistema de moderación en la que cada usuario nuevo empieza con un Karma 0, y siempre que éste no sea negativo será candidato a moderar. Asi cada usuario tendrá privilegios o desventajas según sus actos.

Me parece un tema de debate realmente bueno. ¿Conoces algún sistema antispam o antitrolls más? ¿Cuál crees que es el mejor? ¿Conoces o tienes alguna idea sobre otro?


Páginas: 1 ... ... 1


Artículo de http://www.emezeta.com/

6 consultas efectuadas / Página generada en 0.044 segundos

Programado íntegramente por José Román (Manz) en XHTML y CSS estándar.

Sindicado bajo Feed RSS. Contenido bajo licencia Creative Commons

Estadísticas de visitas · Términos y condiciones · Contacto · Publicidad · Preguntas frecuentes (FAQ)