Evitando el spam
Desde hace unas semanas, y a una hora bastante intempestiva (alrededor de las 2 o 3 de la madrugada), un spamero graciosillo me deja un regalito en el blog. Cada día tengo como 40 comentarios automoderados (bendito WPBlacklist para WP) que anuncian cosas cada vez más ridículas.
Así que llevo unos días dándole vueltas al tema, y buscando soluciones. Lo que yo busco es algo que el usuario no tenga por qué saber que está ahí y que no dependa del cliente o de las tecnologías disponibles. Así que ideas como la de hacer un hash en Javascript o poner un captcha (una imagen con numeritos para que el usuario los introduzca) no me gustaron ya desde un principio.
El otro día vi otra idea bastante simple pero muy efectiva en el blog de Manuel M. Almeida. Se trata de añadir una casilla más a las típicas de nombre, e-mail, web y comentario, con una pregunta sencilla pero que un bot spamero no puede responder. En su caso utiliza un campo que se ha de completar con el Apellido de Manuel M. Almeida. Pregunta obvia pero sólo respondible (¿existe esta palabra?) por un humano.
Pero hete aquí que esta solución también acarrea molestias para el usuario. Molestia mínima, pero molestia al fin y al cabo. Así que, inspirado por la idea del señor Almeida, en un rato de aburrimiento se me ha ocurrido algo que podría funcionar, aunque igual ya existe.
El sistema sería sencillo. Aparte de los cuatro típicos campos antes mencionados (nombre, e-mail, web, comentario), se añadiría otro con un nombre cualquiera. Reburcio, pongamos por caso.
En el caso de las plantillas por defecto de WordPress, el campo nombre está identificado por “author”, el de e-mail por “email”, el de web por “url” y el de comentario por “comment”. Con este sistema se añadiría un quinto campo, llamado “reburcio”. Lo que podríamos hacer es intercambiar la función de “comment” y “reburcio”, y si algún bot spamero atontado rellena la casilla “comment” (como seguro que hará), le mandamos a freír puñetas (o a un 403, como se prefiera).
Me explico. Se haría que el campo para meter el texto del comentario se llamase “reburcio”, y el campo llamado “comment” se ocultaría, mediante CSS, por ejemplo. Así el usuario sólo vería los cuatro campos de siempre, y los rellenaría sin problemas (poniendo el texto de su comentario en el campo llamado “reburcio”). El bot vería los cinco campos, y como identificaría el llamado “comment” como útil, lo rellenaría. Y nosotros detectamos esto al procesarlo y es ahí cuando le cortamos el grifo.
¿Qué opináis? ¿Funcionaría?
14 comentarios
Suscripción RSS a los comentarios de esta entrada.
Disculpa, los comentarios están cerrados.
No veo a qué te refieres… si has llegado al final de un post, justo debajo están los comentarios, no hay que subir a ningún sitio :?
Comentario por Martín — 04/03/2005 @ 23:06
Hola Martín.
Podría funcionar, no se, pero el único inconveniente es que hay que cambiar toda la función comment por la tiburcio, e imagino que habrá más de un fichero afectado, por lo que acarrearía algo de trabajo, aunque tampoco mucho.
El problema es que cuándo esto se extienda el bot comenzará a reconocer la casilla oculta y la visible.
Saludos.
Comentario por Spacebom — 04/03/2005 @ 23:13
No creo que dé mucho trabajo, al menos en el caso de WordPress. No lo miré aún, pero creo que bastaría con editar la plantilla de los comentarios (
wp-comments.php) y el archivo que procesa el comentario (wp-comments-post.php). Si lo hago y veo que es efectivo, ya postearé.Respecto a que un bot lo rastree, sería algo bastante improbable. Un bot de esos, en teoría, tiene programada una serie de acciones para cada CMS. En el caso de WP, parece que buscan los wp-comment-post.php y envían directamente los datos. Otros incluso rastrean los campos del formulario de comentarios. Es en este último caso cuando esta idea entra en acción: el bot encontrará los campos “author”, “url”, “email” y “comment” (ignorará el “reburcio”, qué más le da). Al rellenar el “comment”, es cuando le denegamos el acceso. Y en el peor de los casos, aunque rellenase “reburcio”, “comment” lo rellenaría también y podríamos cargárnoslo de nuevo.
Comentario por Martín — 04/03/2005 @ 23:51
Mmm, la idea, sino te he entendido mal es dejar la función y la casilla coment para que lleve al bot a un callejon sin salida.
Y habilitar otra función y casilla (reburcio), no identificable para el bot, pero si para el lector… mmm No está nada mal como idea.
Si la pruebas ya comentas que tal resulta. A veces las ideas más sencillas son las mejores. :)
Comentario por corsaria — 05/03/2005 @ 01:27
Sí, esa viene a ser la idea.
Comentario por Martín — 05/03/2005 @ 02:25
Hum, es una gran idea.
Comentario por Diz — 05/03/2005 @ 02:56
Me gusta la idea y creo que tiene bastante sentido. ¿Que tal la simple idea de ubicar un checkbox que aleatoriamente pida ser marcado o no? Aunque volvemos a lo mismo: molestia para el usuario…
Un saludo ! :)
Comentario por Manz — 06/03/2005 @ 17:44
Lo del checkbox sería una buena idea también, pero también requeriría algo de código. Me lo apunto :)
Comentario por Martín — 06/03/2005 @ 19:47
Quizás puede valer un simple “checkbox” que diga algo parecido a:
[ ] Este mensaje no es spam, por favor publíquese
No quiero herir tu orgullo pero nadie se va a poner a programar un bot para spamear tu web :)
Comentario por Álvaro G. Vicario — 06/03/2005 @ 21:46
No se trata de mi web, Álvaro. Se trata de una idea que se pudiese extrapolar a blogs más importantes e interesantes que éste, para los que alguien sí se molestaría en programar un bot. O para incluir de serie en CMS, o lo que sea.
Comentario por Martín — 06/03/2005 @ 21:56
creo que spam karma tiene algo parecido como uno de sus tests
o tal vez no :P pero me suena
Comentario por Zootropo — 07/03/2005 @ 18:32
Hoy quiero ser uno más
Hoy me odio a mí mismo: Me estoy convirtiendo en uno de esos bloggers que no tienen cosas interesantes que contar, y cuentan cosas sobre weblogs. Sí, es …
Trackback por GejorWeb! — 08/03/2005 @ 00:47
Pues a simple vista suena genial. Ya contarán los que lo implementen. Yo, ahora mismo, tengo a los spammers a raya con el hack que explico en mi blog y el spam-karma, que aunque es un pelín slavaje, devora spam que no veas.
Un saludo.
Comentario por mmeida — 08/03/2005 @ 13:28
Hace unos meses que existe un plugin antispam para wordpress llamado WP-Morph, que no requiere que el usuario introduzca ninguna entrada adicional. Yo lo he probado y por el momento, funciona muy bien, lo puedes encontrar aquí
saludos.
Comentario por Jesus — 18/06/2005 @ 01:19