Los comentarios spam (propagandas de sitios pornos, de venta de seguros, de juegos de azar, de venta de pastillas sin receta, etc.) en los weblogs se están volviendo un gran problema (al menos para los que usamos Movable Type). Se pierden los comentarios normales entre tanta basura, y/o se pierde mucho tiempo borrándolos.
Durante un tiempo fue suficiente la solución de MT-Blacklist, pero últimamente los sitios de los spammers están cambiando de dominio constantemente, por lo que la cantidad que pasa el filtro es demasiada. Entonces hace unos días me decidí a buscar soluciones alternativas/complementarias.
Tenía un par de ideas propias, pero para no reinventar la rueda me puse a buscar qué respuestas al tema había encontrado la comunidad weblogger. Encontré baterías de soluciones e interesantísimas discusiones.Empecé por aplicar la solución que menos afecta a la funcionalidad del sitio, que es renombrar el script de los comentarios, y eso solo redujo notablemente (80%?) la cantidad de spam que entraba, o que tenía que bloquear el MT-Blacklist (el Activity Log hoy muestra mucha menos... bueno, actividad). Pero evidentemente algún programita spammer ya estaba al tanto de esta posibilidad, y lograba pasar la barrera. Entonces, con todo lo leído y experimentado, traté de encarar el problema de forma más general:
Básicamente, el spam ataca donde el esfuerzo/costo por dejar una propaganda es inferior a la ganacia que da ese pequeñísimo porcetaje de salames que va a entrar al sitio publicitado. Por eso se ataca a Movable Type, que tiene una gran cantidad de usuarios, lo que significa que un programa spammer que funcione, funcionará en muchos sitios.
Lo ideal sería encontrar una fórmula que desequilibre esa ecuación, pero mientras tanto, lo que hay que buscar es una traba que haga más difícil el spamming en el sitio propio. Seguirán jodiendo en otros sitios, pero el nuestro se salvará por requerir más esfuerzo.
Hay distintos tipos de trabas, desde las que son internas al weblog y el visitante no percibe, hasta las que lo obligan a registrarse, posponen la aparición de sus comentarios, dificultan la participación de los usuarios con ciertas discapacidades (los captchas afectan a los chicatos, básicamente), etc. Apunto siempre a las alternativas del primer tipo.
Ahora, si una determinada traba se hace popular (MT-Blacklist), los spammers la tendrán en cuenta y los sitios que la implementaron vuelven a estar en la mira. Entonces cualquier solución que encuentre ya implementada por ahí, va a tener cierta pérdida de efectividad en el tiempo, a medida que se popularice.
Hay que ser original. Mi sugerencia es incluir una modificación en el weblog para que los comentarios incluyan el pedido de un dato adicional, el cual tenga una validación. En mi caso, Mató Tu Onda! se vuelve indiscreto y solicita la edad, algo que no necesita explicación para los usuarios no técnicos, y como se mantiene en las cookies, implica su ingreso una sola vez, un click en "No me olvides", y listo.
La implementación implica:
- La modificación de las funciones que guardan/recuperan las cookies.
- Modificación de los templates para incluir el nuevo campo.
- Modificación de Comments.pm (o MTBlPost.pm si se tiene instalado el MTBlacklist), con un código como el siguiente (a riesgo suyo, haga backup):
## COMIENZO HACK para controlar edad
## http://www.matotuonda.com.ar/archives/000771.php
my $edad = int($q->param('edad') || '');
if ($edad && $edad eq $q->param('edad')) {
if ($edad handle_error($app->translate(
"Por motivos de envidia, no se permiten comentarios de infantes tan precoces"));
} elsif ($edad > 120) {
return $app->handle_error($app->translate(
"Por motivos de envidia, no se permiten comentarios de viejos tan longevos"));
} else {
## Ok!
}
} else {
return $app->handle_error($app->translate(
"Por favor especifique su edad"));
}
## FIN HACK para controlar edad
- Otras modificaciones para registrar el nuevo dato en la base, y poder mostrarlo en el weblog, lo cual aún NO hice, y no es indispensable para el efecto buscado.
Actualización 16/01/05 11:20
Luego de casi dos meses de uso, les aseguro que funciona. La evaluación hecha aquí se mantiene: se detuvieron prácticamente todos los intentos de spam, y hubo algunos falsos positivos de personas que no supieron poner la edad (?). La mayor ventaja es que es natural para el visitante ocasional que no sabe de blogs, spams, comments, ni nada.

Sí, pero igual siguen llegando desde ahí como si nada.