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?