Soluciones Mixtas contra el spam

Hace tiempo leí un artículo en donde se explicaba ¿por qué? era de algún modo rentable el spam en drupal.org.

No creo que a esta altura alguien no conozca el concepto de spam, pero por las dudas:

Según Wikipedia:
Spam en los blogs Consiste en dejar un comentario en una entrada, que por lo general no tiene nada que ver con la misma sino que tiene links a sitios comerciales, o promociona algún producto.

<?php

 $hola = 'que tal'; 

?>

Básicamente existen dos fuentes de spam, por un lado, robots, que están permanentemente intentando crear estas entradas, por otro lado, humanos que se encargan de publicar estos contenidos indeseados.

Enfrentarse a cada una requiere de estrategias distintas. Comencemos entonces por el spam automatizado.

Digame señor, ¿Cuánto es 1 + 1?

Sistema de captcha, pregunta matemática

La principal defensa que tienen los sitios webs contra el spam automatizado es el hecho de que son máquinas, y como suelen decir muchos profesores, “las máquinas no piensan”.

Por esta razón, se han inventado muchísimos sistemas que intentan comprobar un cierto grado de inteligencia en el autor de la entrada, y de esta manera cerciorarse que no es una máquina enviando spam.

Para Drupal existen muchos módulos que funcionan como “verificadores de humanidad”, los más conocidos son captcha, re-captcha, mollom, spam, entre muchos otros.

Tanto capcha como re-captcha desafían al usuario a que conteste algún tipo de pregunta que verifique su condición de humano pensante. Una pregunta matemática simple, interpretar una palabra escrita con imágenes borrosas, son los más conocidos y utilizados.

Mollom y spam funcionan de forma diferente. Estos módulos analizan el texto en busca de patrones sospechosos, y si determinan que pueden ser spam, recién allí utilizan algún sistema de captcha para confirmar el envío.

Mollom

Es claro que este tipo de controles solo es efectivo en el caso de que el envío de spam sea automatizado, pero, ¿qué sucede si alguien con malas intenciones quiere crear spam?. 1 + 1 es 2, incluso para un chico de 6 años.

¿Porqué no se consigue un trabajo en serio?

Siendo franco, el hecho de que alguien se registre en un sitio y se dedique a crear spam no es lo más sensacional del mundo, hay cosas mejores a las que dedicarse.

Pero si usted está del otro lado, y su cliente lo llama a diario porque su sitio se llena de spam, tal vez le interese lo que sigue.

Las soluciones contra spam humano no son sencillas. De hecho son simplemente imposibles de automatizar. La razón: “las máquinas no piensan”. Los spammers si.

Sin embargo hay que analizar el aspecto social de todo esto, un spammer humano solo gastará su tiempo en sitios en donde las visitas sean lo suficientemente altas para que su anuncio sea leído muchas veces. Y aprovechando esta características puede hacerse uso de una gran fuerza: La comunidad.

La idea es simple, por cada spammer en un sitio hay decenas o cientos lectores que detectan el spam y quieren que se vaya. Simplemente permitales que puedan hacerlo.

Por supuesto no puede darle permisos de administrador a todos los usuarios de un sitio. Es simplemente inaceptable. Pero hay soluciones intermedias.

El módulo Flag:

Flag, en español, bandera, permite marcar todo tipo de objetos en Drupal. Con marcar me refiero a darle algún tipo de voto con significado, “marcar como favorito”, “marcar como interesante”,“marcar como spam”.

El módulo Flag por si solo no hace nada más que marcar contenido. Sin embargo, gracias a su integración con views y rules pueden lograrse efectos muy útiles.

Veamos un ejemplo real:

En Drupal Hispano, muchos usuarios se estuvieron quejando de la creciente actividad de los spammers en el sitio. Muchos de los que se quejaron tienen varios años dando vueltas por Drupal Hispano, por lo que pueden considerarse personas “confiables”.

Una configuración adecuada de Flag, Rules y Views podría lograr lo siguiente:

  1. Permitirle a los usuarios marcar contenido como spam. Activar Flag y crear una nueva bandera para marcar los posts en los foros como spam o no. Esto no controlará el spam, solo permitirá a los usuarios indicar si a su criterio ese contenido puede llegar a ser spam.Marcar como spam con flag
  2. Crear una vista que filtre todos los nodos marcados como spam. Utilizando Views Bulk Operations puede crearse una vista que permita borrar los nodos filtrados, un administrador podría regularmente revisar ese listado y borrar nodos. Para hacer este listado es necesario determinar una relación en views 2 con la entidad Flag.Usar la relación Flag para enlazar nodos marcados como spam Aqui se ve un ejemplo de lo dicho anteriormenteEjemplo de Views Bulk Operations
  3. Con Rules pueden crearse reglas para despublicar contenidos cuando son “marcados” como spam X cantidad de veces marcar como spamUn posible ejemplo de configuración seria:Rules analizando cantidad de marcas de spamLa ventaja del uso de rules es que no hay que esperar hasta que un administrador quite el contenido. Luego de X cantidad de marcas de spam, el contenido de despublica automáticamente.Evento con acciones y condifciones
  4. Además rules permite aplicar más condiciones. Por ejemplo si un usuario posee cierta antigüedad en un sitio o algún rol determinado, el proceso de despublicación puede acelerarse.Rol del usuario que marcó el contenido como spam
  5. Más aún, rules puede configurarse para que los usuarios que crearon spam sean bloqueados automáticamente. Solo es cuestión de realizar un par de consultas a la base de datos y ejecutar algún trozo de código PHP.

Con la aplicación de estas políticas, el tiempo de vida del spam en un sitio se reduce a unos pocos minutos, a lo sumo horas, hasta que la suficiente cantidad de personas marquen ese contenido como spam.

¿Qué sucede si de pronto, muchos contenidos comienzan a ser marcados como spam cuando no lo son?. En ese caso solo es cuestión de crear mejores reglas en rules, que permitan que al marcar un contenido como “no es spam”, por algún administrador, este contenido no pueda volver a ser despublicado. Las variantes son muchísimas, solo hay que dedicar el tiempo suficiente para pensar la soluciones acorde a su problema.

Conclusiones:

Las soluciones de CAPTCHA son realmente útiles y le permitirán dormir tranquilo por las noches mientras los robots dan vueltas por la red. Úselas.

Para sitios más visitados en donde el spam humano es más difícil de combatir, las soluciones mixtas pueden ser una buena opción. Por supuesto, rules y flag pueden recargar de forma considerable el servidor si no están bien configurados, por lo que se debe evaluar bien cuales son las opciones a implementar.

Te invito a leer también...

Compartir este material en...

Comentarios

Esto me parece muy interesante. He estado buscando durante bastante tiempo algún modo de permitir a los usuarios 'automoderarse'.

El método que utiliza Slashdot me parece muy conveniente, y en cierto modo comparte ideas con este artículo: existe un umbral de lectura por debajo del cual los comentarios no se muestran (borrarlos puede llevar a acusaciones de censura etc etc) y los propios usuario pueden promover comentarios, tanto de forma positiva como negativa.

Me encantaría ver algo como esto en drupal ;)