Evitando el spam (II)
Vaya, parece que funciona. He puesto en práctica la idea del post anterior y no va mal. Configuré el asunto para que cuando un bot caiga en la trampa se me envíe un e-mail, y en cuatro minutos de reloj van 29 avisos (¿y a que no véis ningún anuncio de online poker?). O estáis comentando como locos y esto funciona mal, o funciona realmente bien :)
Al final resultó en un par de cambios muy sencillitos, fácilmente adaptables a cualquier sistema de publicación de contenidos. Estos son los cambios que yo he hecho en el WordPress 1.2.2 (no sé si valdrá para otras versiones, pero si no, la diferencia será mínima):
-
En el archivo
wp-comments.phpdebemos añadir untextareamás, para engañar al bot atontado. Para ello, si en el formulario de comentarios tenemos por ejemplo esto:<textarea name="comment" id="comment" cols="60" rows="8"></textarea>Bastará con que añadamos otro campo similar, pero con otro
namey otroid(que será el que realmente usemos, quedando el original como atrapabots), quedando así la cosa:<textarea name="antispam" id="antispam" cols="60" rows="8"></textarea>
<textarea name="comment" id="comment" cols="60" rows="8"></textarea> - En el archivo
wp-comments-post.phphay que ingeniárselas mejor. Al principio del archivo, justo después del<?php(esto es importante), dejamos caer estas líneas:
if(strlen($_POST['comment']) > 3) {
header("Location: http://www.google.co.kr");
mail("aqui@tu.email", "Un spambot atontado", "Un spambot se ha metido en el agujero.Ha dicho:\n\n" . $_POST['comment']);
exit;
}Además hay que cambiar
$comment = trim($_POST['comment']);por$comment = trim($_POST['antispam']);.Ojo con esto. En la primera línea se comprueba si el campo
comment(recordemos: campo que antes era utilizado para enviar los comentarios) tiene más de 3 caracteres. Si el bot ha rellenado el campocomment(como es lógico que hará, porque así está programado), lo mandaremos a Google Corea. Esto es a voluntad de cada uno :). Con la siguiente línea estamos enviándonos un e-mail de aviso de cada bot que ha intentado colárnosla. Recomiendo quitarla una vez que comprobemos que el sistema funciona. Por cierto, hay que poner el e-mail propio substituyendo lo de aqui@tu.email, obviamente. - Ahora sólo queda editar nuestros estilos CSS, añadiendo la siguiente declaración:
#comment {
display: none;
visibility: hidden;
position: absolute;
margin-left: -1000px;
}Todas esas propiedades son para asegurarnos que realmente el campo-trampa se oculta al usuario. Y ya está.
Sólo recomiendo esta solución a quienes sepan lo que hacen, pues esto no es código de copiar y pegar, hay que entender lo que se hace, pues podemos cargarnos algo. Ya diréis si funciona o no.
En lo que tardé en escribir el post ya tengo 62 avisos de spam… debe funcionar, sí…
16 comentarios
Suscripción RSS a los comentarios de esta entrada.
Disculpa, los comentarios están cerrados.
[...] WordPress para que engañe a estos bots tontos. Teneis el artÃculo que escribió MartÃn aquÃ.
Comentarios » E [...]
Pingback por PaToRoCo.Net - Peripecias de un domador de pingüinos » Liberando comentarios (III) — 07/03/2005 @ 21:21
¡De p*ta madre! Lo implementaré en el CMS en el que estoy trabajando.
PD. Mucho spam tienes, ¿no?
Comentario por Diz — 07/03/2005 @ 21:48
No, tanto no tengo, pero es que estoy tentando a los spammers: renombré el archivo de comentarios a su nombre original }:)
Comentario por Martín — 07/03/2005 @ 21:49
Martín, creo que se te olvidó decir que en el archivo
wp-comments-post.phphay que cambiar:$comment = trim($_POST['comment']);
por
$comment = trim($_POST['antispam']);
Porque si no los comentarios buenos se irán a la “Papelera de Reciclaje” ;)
Comentario por PaToRoCo — 07/03/2005 @ 22:18
Liberando comentarios (III)
Por tercera vez, libero los comentarios para que no tengais que esperar a que yo los modere para que se vean, lo cual me habÃa tocado por la gracia de los bots spammeros.
Pero gracias a MartÃn, he añadido otro “filtro” a WordPress para que engañ…
Trackback por PaToRoCo.Net - Peripecias de un domador de pingüinos — 07/03/2005 @ 22:21
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
Doy fe que funciona, o al menos eso debe ser, porque mi CMS usa (desde siempre) campos con nombres raritos, y de momento en las diversas webs donde lo he probado no han sufrido spam…
Lo que estoy pensando ahora es un sistema parecido, pero un pelín más complicado, y es hacer aleatorios los nombres de los campos en cada ocasion (no hace falta que un campo se llame tiburcio o comment, puede llamarse 09sd8hkjsa09 siempre y cuando te acuerdes que eso lo tienes que meter en la base de datos en el campo correcto…). Ya os contaré a ver que tal…
Comentario por Gejor! — 08/03/2005 @ 00:51
En Firefox en Windows (linux todavia no he probado) el tema no funciona muy bien, pues el textarea “comment” se ve… lo que queda algo confuso ;-)
Comentario por Fernandoº — 08/03/2005 @ 04:01
Utilizo Firefox para Windows y a mí me funciona perfectamente (sólo se ve el campo que debe verse). Lo mismo en IE6. ¿Quizás es que no se te ha actualizado la hoja de estilos? Prueba con Ctrl+F5 o entrando en http://memoriasdeungeek.bitacoras.com/css/screen.css
Comentario por Martín — 08/03/2005 @ 15:34
Pues va a ser que si, porque ahora sólo veo un textarea ;-)
Comentario por Fernando — 08/03/2005 @ 21:23
Sería interesante hacer la prueba simplemente cambiando el nombre del campo. No creo que el bot lea el formulario, nada más se conectará a la página que lo procesa y enviará los campos predeterminados del CMS de turno.
La idea de Gejor! me parece interesantísima, aunque estaría por ver que un bot no pueda simular el comportamiento de un navegador.
Comentario por Álvaro G. Vicario — 08/03/2005 @ 21:33
Tambien se puede usar AuthText-o ;)
Comentario por mazzi — 09/03/2005 @ 04:09
¡Mmmm!, la idea es realmente ingeniosa, y no pretendo en absoluto menospreciarla, pero sólo es útil mientras el bot no verifique la/s propiedad/es visible y/o display del objeto estilo. En mi humilde opinión, la solución más efectiva pasa por desarrollar filtros tipo “SpamKiller” del lado servidor, lógicamente, para que nada ni nadie indeseable pueda tener acceso.
Comentario por Jarol® — 01/04/2005 @ 12:51
Martín lo tengo implementado y funcionando desde el primer día que migre a Wordpress, y solo puedo darte las gracias por la idea ;)
Además, es extremadamente sencillo, gracias!
Comentario por Spacebom — 10/04/2005 @ 20:44
[...] Ya estamos, habÃa conseguido eliminar el spam en el blog gracias a Memorias de un Geek, pero en el fotoblog no era necesario. Ahora llevo un par de dÃas que tengo que entrar a eliminar un par de comentarios con enlaces a viagra, diabetes, etcétera. ¿Por qué el ser humano es asÃ? ¿No podemos respetarnos unos a otros? Estoy hasta los cojones del spam y de esta sociedad egoÃsta que sólo busca su propio beneficio. [...]
Pingback por Sueños transitables » Blog Archive » Spam en el fotoblog — 23/04/2006 @ 16:12
[...] Llevo unos dÃas recibiendo ataques spam en los comentarios. El caso es que instalé el fantástico sistema antispam de Memorias de un Geek y hasta hace unos dÃas todo iba a la perfección. CreÃa que estaban atacando por los Trackbacks, asà que los cerré, pero seguÃan llegando comentarios. Lo que he hecho ha sido activar la moderación y por tanto si escribÃs un comentario es posible que tarde en aparecer. No desesperéis. A veces, esta es una de ellas, me pregunto si merece la pena perder tanto tiempo con esto. Otras veces pienso que todo el esfuerzo que haga para mantener el blog merece la pena. Hoy no tengo uno de esos pensamientos. Como hago últimamente, dejaré pasar el tiempo y olvidaré el blog por unos dÃas (si el spam me deja, claro). Creado por Torcuato.Guardado en: [...]
Pingback por Sueños transitables » Blog Archive » Ataques spam — 22/05/2006 @ 09:12