diego sevilla’s weblog
it is better to remain silent and be thought a fool,
than to open your mouth and remove all doubt -- groucho marx

25/11/2004

WordPress Anti-Spam, toma 1

Filed under: español, blogging — Diego Sevilla @ 21:59 — In English

Bueno, como prometí, una explicación de cómo he modificado mi WordPress para eliminar comentarios de los spammers. En principio, creo que las modificaciones que he hecho van a hacer que no tenga más comentarios spam, pero voy a dejar un tiempo de confianza para probar. Lo primero que he hecho es localizar en la distribución de WP dónde se mostraba el diálogo (form) para introducir los comentarios. En el fichero wp-comments.php. Ahí me he encontrado con:

form action=".../wp-comments-post.php" ...

(con lo que la página que recoge los datos del formulario es wp-comments-post.php. Para hacer el formulario diferente a lo que los spammers tendrán registrado de esta versión, he añadido un nuevo campo “hidden”:

input type="hidden" name="checkpoint" value="spammers_go_home"

Lo siguiente es fácil: Modificar el fichero wp-comments-post.php para que si no existe ese campo y no tiene exactamente ese valor, aborte el programa:

if ('spammers_go_home' != trim(strip_tags($_POST['checkpoint'])) )
die( "Spammer, go home" );

Si no existe ese campo exactamente con ese valor, no emite el comentario.

¿Por qué funciona esto? Bien, como es de esperar, los spammers no son personas que están sentadas y “pulsan” el botón “enviar comentario”, sino que son programas que envían peticiones HTTP POST pre-formateadas. Para ello han estudiado el código fuente de WP (si, hay gente que hace eso, aunque parezca extraño) y han obtenido el formato de esa petición de publicación de comentario. Así pueden poner programas que automáticamente envían comentarios spam. Añadiendo el nuevo campo oculto y comprobándolo en el fichero que recibe los datos hace que un usuario que realmente pulse el botón sí que pueda publicar el comentario, mientras que un programa, que no tendrá este nuevo campo, no pueda. Esperemos que funcione.

Actualización: He escrito un plugin más sofisticado para tratar el spam. Está aquí.

Actualización: He estado buscando en Google porque es casi seguro que ya se han preocupado de esto. Es increíble la cantidad de soluciones que se dan en la que parece ser la página especializada en combatir el spam para WordPress. Casi ninguna de ellas (salvo quizá la que genera un gráfico para obligar a que una persona lo lea e interprete) es tan eficaz como la que propongo, y desde luego, ninguna tan sencilla. En el sitio web de WP también se explica, pero se limita a decir las opciones del programa, que como ya he explicado, no son suficientes… En fin…

Actualización 2: En esta entrada describo el proceso más detalladamente, ya que hay varias personas que me han preguntado exactamente cómo hacerlo. No lo especifiqué mucho, porque en principio no esperaba que tuviera tanto éxito esta solución anti-spam… ¡¡Que aproveche y abajo el spam!!

Actualización 3: Sería interesnte que los que implementaran la solución cambiaran en su sitio web el “name” y el “value” de la variable oculta. Así cada sitio Web tendría un valor distinto para esta variable de comprobación, y obligaría a los spammers a tener que analizar la página antes de enviar un comentario spam.

63 Comments »

  1. Muy bonita la solución.
    La más elegante de las que he visto hasta ahora.

    Comment by Chavalina — 26/11/2004 @ 16:14

  2. Jeje, gracias. A ver si funciona bien. Por lo pronto hoy ni un spam :P

    Saludos!
    diego

    Comment by diego — 26/11/2004 @ 20:25

  3. No sólo es una solución prolija sino tambien lo más eficiente que encontré contra el spam en los blogs (no solo WP). Gracias en nombre de las víctimas del spam. Falta desparramarlo un poco más.

    Comment by Lucas — 27/11/2004 @ 16:55

  4. Pues sí, es una buena solución. Y portable a otros CMS como Movable Type o TextPattern.

    En esta otra página tienes unos cuantos consejos más contra el spam (entre los que se encuentra el tuyo) por si llega a fallar el filtro algún día. Está centrada en MT, pero es fácilmente adaptable. Creo.

    Saludos.

    Comment by JR — 27/11/2004 @ 20:02

  5. Muy bueno loco, lo estoy probando ahora y hasta el momento funciona

    Comment by Osvaldo — 30/11/2004 @ 19:33

  6. Anti Spam para WordPress
    Los constantes bombardeos de “comentarios spam” en los blogs WP, han llevado a sus autores a cuadros casi depresivos, hahahah nunca tanto, pero sí son bastante molestos. Recibir más de 100 comentarios basura al día aburre a cualquier cristiano.

    H…

    Trackback by BlogAz — 8/12/2004 @ 8:48

  7. Hey, me gusto mucho tu solución. Voy a probar como resulta….

    Comment by Claudex — 9/12/2004 @ 19:58

  8. Yo ya he puesto la solución, ahora a ver si va bien :)

    Comment by PaToRoCo — 11/12/2004 @ 3:27

  9. Que buena onda, el spam ya me estaba casando!!

    Comment by (¯`¤GRECIA¤´¯) — 13/12/2004 @ 18:54

  10. Despues de probarlo por varios dias tengo que reconocer que es lo mejor que hay dando vueltas por ahi..
    Se me ocurre que quizas podrias explicar mejor como instalarlo, me refiero a en que numero de linea hay que colocar el codigo, a mi se me complico un poco al principio y dado que es una solucion excelente, seria bueno tener algo que hasta los nabos como yo entendamos y podemos usar

    Comment by Osvaldo — 15/12/2004 @ 3:31

  11. Hola, Osvaldo:

    Pues cuando saque un momento lo escribo de forma más detallada. Quiero añadir algunos truquillos más que se me han ocurrido. De todas formas, es difícil, porque WordPress permite modificar todos los ficheros .php directamente, con lo que no puedo sacar un “parche” de la distribución, por ejemplo. A ver cómo lo especifico mejor

    Saludos,
    diego

    Comment by diego — 15/12/2004 @ 13:26

  12. Buenas!
    Yo soy otro sufrido usurio que recive spam en Wordpress. Antes me llegaban en cualquier momento después de escribir la noticia, aunque para eso puse el “trencaspammer”. Si no lo conoceis este parche genera unos numeros los cuales tiene que introducir el usuario. De esta manera ya no me bombardean tanto, pero cada vez que pongo una noticia nueva, hay tengo mi ración de Spam. He leido este árticulo, pero no se muy bien que tengo que modificar. ¿Podrías especificar en que parte del documento hay que poner lo del ‘hidden’ y lo del ‘if’?
    Agur y muchas gracias!

    Comment by Zamorate — 21/12/2004 @ 18:27

  13. ¡Hey! Se oye bien, voy a probarlo… gracias.

    Comment by Renato — 21/12/2004 @ 23:57

  14. Zamorate, no entiendo cómo después de poner el “trencaspammers” te siguen poniendo comentarios… Se supone que para poner cualquier comentario hay que rellenar el campo correspondiente leyendo los números de la imagen.

    Por cierto, he actualizado, la explicación en esta entrada del blog para ayudar a la gente que no sea informática.

    Un saludo,
    diego

    Comment by diego — 22/12/2004 @ 2:31

  15. Contra el SPAM
    Incluso después de instalar el Spaminator, me seguía llegando spam! Implementé el método del hidden, pero no quiero volver a ver un spam!… y esta noche se me ocurrió esto:

    Los bots que hacen el spam de los comments, tienen ciertas URLs definidas…

    Trackback by Bajo sus alas... — 29/12/2004 @ 3:39

  16. […] en al formulari que ens va donar Diego Sevilla y que tenim molt ben explicada al seu bloc, aquí y aquí. Mentrestant, podem seguir aquest interesant fil de discussió sobre el tema a Barrap […]

    Pingback by apunts » Mes del spam — 30/12/2004 @ 10:14

  17. Las tres reglas del juego del spam:

    1) No puedes ganar.
    2) No puedes empatar.
    3) No puedes abandonar el juego.

    Comment by guadalinex — 5/1/2005 @ 18:12

  18. Hola, guadalinex, no estoy de acuerdo en absoluto. De hecho, desde que he puesto esa medida tan sencilla que aparece en esta entrada, no he tenido ningún spam… Y en cuanto al spam del correo, tengo muy muy poco (2-3 mensajes al día) gracias a spamassassin.

    Saludos,
    diego

    Comment by diego — 5/1/2005 @ 18:31

  19. WordPress Anti-Spam, toma 4
    Muy bien, cómo no. Ahora toca el turno a los trackbacks. Una vez que había eliminado los comentarios spam en WordPress, los spammers me bombardean con trackbacks. Estaba claro: también tenían que intentarlo por ahí. Ahora bien, la cuestión de los track…

    Trackback by diego sevilla's weblog — 5/1/2005 @ 19:08

  20. no se no se, no veo por ningun lado el rollete del antispam, pues no me pide nada mas que rellenar los campos y darle a Say.

    Comment by uno — 8/1/2005 @ 20:05

  21. Ah ya veo …..el campo URL puede despistar al robot de spam ya que no presenta el formato estandar

    Comment by uno — 8/1/2005 @ 20:08

  22. Bueno, no exactamente la URL, sino los campos “hidden” del formulario. Un spammer tendría que analizar el formulario para saber exactamente qué y cómo enviar un comentario, a no ser que lo haga a mano :P

    En cuanto a tu primer comentario, no hay más que ver que no hay comentarios spam en el weblog para darse cuenta de que esto funciona :)

    Comment by diego — 9/1/2005 @ 20:28

  23. Muy buena la solución… pero los ‘die’ me rompen; para un usuario que olvidé rellenar alguno de los campos obligatorios… alguna alternativa a los ‘die’ sin tener que pelearse a fondo con el código de wp?

    Comment by David — 10/1/2005 @ 0:42

  24. Hola, David:

    No, no hay ningún campo obligatorio (como puedes ver). Son campos “ocultos” :P , así que el “die” sólo se lo llevan los spammers.

    Saludos!
    diego

    Comment by diego — 10/1/2005 @ 1:58

  25. Control De Spam En Comentarios

    Cmo evitar los comentarios spam sin agregar trabas para los usuarios sin conocimientos tcnicos.

    Trackback by Mat Tu Onda! — 16/1/2005 @ 15:40

  26. Buen método, y sencillo, pero nada impide que cuando este método sea popular los spammers se bajen la página antes de enviar el spam para localizar qué pone en el campo oculto y enviar su petición con el campo oculto correcto.

    Quizás se puede elaborar más la idea usando mensajes y campos aleatorios por cada sesión de usuario, pero al final da igual lo que se haga ya que si es algo que viene de forma estándar en el código nada impide que los spammers vuelvan a estudiar la página y reescriban su robot para tener en cuenta los campos ocultos aleatorios. Afortunadamente parece que los spammers siguen la ley del mínimo esfuerzo y si te sales un poco de la norma no te molestan.

    Comment by Gorka Olaizola — 20/1/2005 @ 12:32

  27. poker, casinos, viagra.

    era sólo por probar el spam manual :|

    admin por favor borra este comentario.

    Comment by spammer ;) — 20/1/2005 @ 12:56

  28. Jaja, spammer, no te borro, que queda genial.

    Comment by diego — 20/1/2005 @ 13:28

  29. Gorka, tienes razón. Sin embargo, hay otras muchas estrategias, como por ejemplo, que los nombres de los campos se generen con JavaScript, lo cual hace la cosa mucho más difícil para hacerla automáticamente.

    Comment by diego — 20/1/2005 @ 13:30

  30. Hay otro metodo que, si bien complica el codigo permite confundir a los bots e incluso limiarlos o impedirles el funcionamiento, aprovechar la sesion, el usuario debe pasar por la pagina de comentarios, darle a comentar, aqui se comprueva que el usuario viene de nuestra pagina o se lenvia a la principal, inmediatamente despues del envio, se vuelve a comprobar que se viene de la pagina de enviar comentarios, entonces se recibe el comentario :)

    Comment by Durgeoble — 20/1/2005 @ 17:21

  31. Diego, dos frases del gran Saint Exupery que decoran la simpleza y efectividad de tu solucion:

    1) “la perfeccion no se alcanza cuando no hay nada mas que agregar, sino cuando ya no queda nada por quitar”.
    2) “lo escencial es invisible a los ojos”.

    gracias. ya estoy libre de spam.

    Comment by MArtin Gaitan — 29/1/2005 @ 22:54

  32. Vaya, Martín,

    Muchas gracias por tus comentarios. Estoy encantado de que esta solución sirva a la gente.

    Saludos!
    diego

    Comment by diego — 31/1/2005 @ 19:19

  33. arece que han vuelto a atacar los spammers. Tranquilos, el truco anti-spam que describí en otra noticia sigue funcionando… Sin embargo, hay un punto débil en la arquitectura: los Trackbacks […]

    Pingback by diego sevilla’s weblog » Lo han vuelto a hacer, más spam — 2/2/2005 @ 2:50

  34. al Internet HTML PHP BdW — jgarcía @ 11:37 am Gracias a Edu, descubro que Diego Sevilla Ruiz nos propone una sencilla sóluc […]

    Pingback by Bitácora de Webmaster » Evita el Span en WordPress -BdW- — 3/2/2005 @ 11:54

  35. vale compartir mi descubrimiento. por unos dias no recibi mas spam, pero a los dias volvi a sufrirlos. Mucho menos que antes, eso si, algo asi como 10 por dia.

    y se me ocurrio una mejorita que por ahora me funciona…
    el campo hidden lo dejo asi

    <input type=”hidden” name=”checkpoint” value=”" />

    y luego el boton de submit agrego lo siguiente

    <input name=”submit” type=”submit” tabindex=”5″ onClick=”check_tin.value=’spammers_go_home’” value=”Comentar!”>

    por ahora vamos bien. 2 dias sin un solo spam.

    Comment by tin — 6/2/2005 @ 1:59

  36. Contra el spam: campo oculto

    Para evitar comentarios de indeseables, lease spammers he puesto en práctica el consejo de Diego Sevilla, el cual nos propone incluir un campo oculto en el formulario que envía los comentarios y luego comprobar la existencia de este al procesar el fo…

    Trackback by bicherele's weblog — 7/2/2005 @ 13:46

  37. ia de este al procesar el formulario, explicado en 2 tomas por si alguien quiere probarlo: diego sevilla’s weblog » WordPress Anti-Spam, toma 1 diego sevilla’s weblog » WordPress An […]

    Pingback by bicherele’s weblog » Archivos del Blog » Todos contra el spam — 7/2/2005 @ 21:02

  38. Hola.
    Ante todo, gracias por la “posible” solución. Digo “posible” porque no me ha funcionado en absoluto. No utilizo WP ni cualquier otro CMS, sino uno propio y todo 4Colors está hecho a la vieja usanza del PHP.

    He dado con una solución momentanea.


    // el texto que nos insertan en los comentarios, por ejemplo
    $comentario_que_viene_del_formulario = "Visita mi choza de juegos de vicio, esto es spam y da asco";
    // voy a discriminarlo, primero quitandole las "tags"
    $comentario_a_tratar = strip_tags ($comentario_que_viene_del_formulario);
    // busco las palabras que más suelen utilizar separadas por '|'
    // y si existen regresa a la "home" sin añadir el comentario
    // pongo otras palabras aquí porque si no, no puedo agragar el comentario ;)
    if ($comentario_tratado = ereg ("(choza|pelota|bicicleta|verano)", $comentario_a_tratar)) == true)
    print ("“);

    Ahora, veremos lo que dura o si la lista de palabras acabará siendo interminable y poco efectiva.
    Saludos.

    Comment by 4Colors — 9/2/2005 @ 12:39

  39. Añadido:

    Donde dice print (”"); debía haber un javascript que se lo ha comido. Pero bueno, se substituye por lo que se quiera que deba hacer el IF.

    Comment by 4Colors — 9/2/2005 @ 12:43

  40. La verdad es que es mucho más facil, hay que comprobar que el formulario sea enviado desde la pagina de crear comentarios.
    Si a eso le añades la creacion de sesion y posterior lectura, es muy dificil…

    Comment by Anonymous — 10/2/2005 @ 13:47

  41. Efectivamente, anónimo (qué pena que no dejéis nombre…)

    Si añades a lo que pongo la comprobación de que la página generadora del formulario es precisamente alguna de las del weblog y quizá también algún concepto de sesión (aunque el inconveninte es que necesitas los cookies activados) la cosa iría todavía mejor.

    Saludos!
    diego

    Comment by diego — 10/2/2005 @ 18:39

  42. 4colors… me ha inquietado tu comentario. ¿Cómo vas a tener spam si te has implementado tu propio CMS? Lo que tienes es alguien que se dedica a hacerte la vida difícil. Es virtualmente imposible que un spammer se dedique a estudiar tu sitio en particular y te envíe comentarios spam (a no ser que sea a través de trackbacks, que es mucho más fácil).

    ¿Podrías explicar un poco más qué clase de spam has recibido? Un problema que veo en tu solución es que quitas los tags a los comentarios. ¿Y si quieres incluir algun enlace web?

    Por lo demás, he estado ojeando tu weblog y ¡es muy original! ¡Buen trabajo!

    Un saludo,
    diego

    Comment by diego — 10/2/2005 @ 18:47

  43. 4colors… mmm… otra cuestión relativa a tu solución. Realmente no necesitas javascript en la respuesta. Se puede solucionar lo que haces con una cabecera REDIRECT, ¿no?

    Comment by diego — 10/2/2005 @ 18:49

  44. ¿Cómo vas a tener spam si te has implementado tu propio CMS?

    Perdone, pero por la misma razón que su metodo es erroneo: usted asume que los spammers tienen algun tipo de base de datos con los formularios de los CMS más comunes y se limitan a ir recorriendo páginas y a spamear las que coincidan con alguna de las archivadas.

    Que es probable que lo hagan, vaya, pero no se limitan a eso: tambien verifican si el html descargado contiene un formulario con palabras clave en los campos, y si cumple, lo spamean, da igual los campos escondidos que le ponga.

    Por eso pueden mandar basura a páginas con CMS propio, como el de 4colors o la mia.

    Sin ir más lejos, su formulario:

    input type=”text” name=”email”
    input type=”text” name=”url”
    input name=”submit”

    Comment by Anonymous — 14/2/2005 @ 22:05

  45. A ver, vayamos por partes.

    En primer lugar, puede que “mi método” sea erróneo. El caso es que no tengo ningún comentario spam desde que lo puse.

    En segundo lugar, POR SUPUESTO QUE LOS SPAMMERS TIENEN UNA BASE DE DATOS DE CÓMO ENVIAR MENSAJES A LOS DISTINTOS CMS.

    En tercer lugar, me parece que eres tú el que no entiende muy bien el funcionamiento de los spammers. Y este es que no harán nada más allá de lo que les reporte beneficios SIN ESFUERZO. Desde luego, hay un esfuerzo en:

    a) leer la página de tu CMS
    b) encontrar el formulario que envía los comentarios (¿se puede hacer esto automáticamente? pongamos que sí)
    c) asociar los campos adecuados a los valores del formulario. Vamos, el ejemplo que has puesto, aparece “url”, “email”, pero ¿y si yo le pongo “campo1″, “campo2″? ¿Así también lo van a saber? ¿Y también qué hacer con los campos “hidden”? ¿Automáticamente? Lo dudo mucho.
    d) la última opción sería que una persona fuera manualmente a evaluar tu sitio para crear un programa que sepa enviar spam a través de tu sitio. Esto siempre puede ser, por supuesto, pero de nuevo no entra dentro del patrón de trabajo de los spammers: necesitan demasiado trabajo para total, enviar spam a un sólo sitio más. No lo harán, créeme. Es más, ¿qué pasa si mañana cambias tu sitio y añades otro campo más? Ya no les vale el formulario. ¿Crees que se tomarán esa molestia pudiendo tener miles de otros sitios que no toman ninguna medida contra el spam?

    Y por último, soy totalmente consciente de que mi formulario permite enviar comentarios, y de forma automática, también. De hecho, puedo hacer un programa en perl en 0.5 segundos que envíe un millón de comentarios a mi weblog. La cuestión es que alguien vaya a considerarlo interesante en cuanto a coste/beneficio, a no ser que sea alguien a mala leche y/o que me conozca…

    Entonces ya la cuestión se convierte en otra cosa, no en spam.

    Saludos,
    diego

    Comment by diego — 15/2/2005 @ 23:12

  46. más, la gente no sabe exactamente cómo funcionan estos desalmados, por lo que puedo ver en algunos comentarios en este weblog. Por favor, lean la respuesta para saber por qué funcionan […]

    Pingback by diego sevilla’s weblog » Más sobre spam (otra vez) y cómo eliminar el spam por trackbacks (¡por fin se me ha ocurrido algo!) — 16/2/2005 @ 0:02

  47. Diego, creo que te has pasado con eso de:
    “De hecho, puedo hacer un programa en perl en 0.5 segundos que envíe un millón de comentarios a mi weblog. “

    Por lo demás, tu idea es genial, sobre todo por su simpleza.

    Comment by Iván — 19/2/2005 @ 3:28

  48. Iván… Si, lo siento, es verdad, me he pasado :) quizá necesitaría un par de minutos :P Pero como comprenderás se puede hacer. Mira por ejemplo aquí.

    Saludos!
    diego

    Comment by dsevilla — 19/2/2005 @ 16:04

  49. […] r el comentario da un error y no deja enviarlo. La solución está detallada en la página de Diego Sevilla. Esperemos que con esto evitemos ya totalmente el spam automatizado, ya que l […]

    Pingback by Weblog de WiZaRd_ | The art of the webloging » Ataques de SPAM — 20/2/2005 @ 21:56

  50. Thanks

    Comment by Mexico — 14/7/2005 @ 20:15

  51. Muy sexy

    Comment by El diablo — 13/9/2005 @ 4:33

  52. Es por probar como lo has hecho :P

    Comment by kainita — 27/9/2005 @ 11:53

  53. “中国望远镜网”专业提供望远镜行业最新资讯!
    网 址:http://www.telescope-china.net

    Comment by 望远镜 — 8/9/2006 @ 8:09

  54. funciona! gracias!

    Comment by xavelo — 26/10/2006 @ 8:30

  55. esta solución me ha estado funcionando bien durante unas semanas… hace unos días me llegó un comentario de spam… y hoy me he encontrado 12… será cuestión de ir cambiando el valor del campo hidden…

    Comment by xavelo — 21/11/2006 @ 8:57

  56. a

    Comment by a — 2/12/2006 @ 23:33

  57. Funciona estupendamente. Estoy encantado ¡muchas gracias!

    Comment by webensis — 12/3/2007 @ 13:34

  58. Qué tal. He implementado tu solución en http://www.invira.es/TDT/ hará una hora y desde entonces ningún spam en la web.
    La verdad es que es fácil de romper si analizan el código de la página, pero no sé si mis amigos spammers se tomarán la molestia.
    Si lo hacen, creo que tengo la solución. Se trataría de que el valor del nuevo campo no fuera fijo, sino que cambiara cada x minutos.
    Tan fácil como editar el comments.php y el comments_post.php para poner un include de un nuevo fichero variables.php, que sólo contuviera la variable con el valor de la clave. Y en el cron de la máquina otro PHP que se encargue de crear un nuevo fichero “variables.php” cada x minutos o x horas.

    Comment by David Lozano Lucas — 20/3/2007 @ 16:47

  59. David,

    Me alegro mucho de que te sirva mi plugin! Realmente el valor del campo cambia cada vez que se lee la página… Compruébalo si quieres. El caso es que hay algunos bot de spammers que de hecho analizan hasta el javascript… O es que están ya preparados anti-wp-morph :) Lo cual lo consideraría como un halago viniendo de ellos…

    Saludos!
    diego.

    Comment by Diego Sevilla — 21/3/2007 @ 1:00

  60. Qué tal.
    A las pocas horas de poner el sistema me lo reventaron. No había leído lo del javascript así que sólo tenía lo de un nuevo campo oculto en el formulario.
    Esta mañana he modificado el PHP sin utilizar javascript, de forma que cada vez que alguien escribe un comentario en mi sitio, se reescribe un fichero .PHP que tiene la variable del nuevo campo del formulario usando un valor aleatorio.
    De esta manera pienso que es muy complicado que me cuelen spam. La única manera sería que el spamer leyera el formulario original cada vez, antes de mandar un mensaje de spam.
    Si me dices tu email te puedo enviar el código, es muy simple. Mi dirección de correo la tienes en el comentario.

    Comment by David Lozano — 21/3/2007 @ 18:05

  61. Interesante. Precisamente estaba buscando ahora alguna forma de prevenir el spam en el wordpress. Aunque yo no lo uso, tengo un amigo que se ha acaba de crear ahora mismo un blog con wordpress. De todas formas, yo uso joomla en algunas paginas y phpbb para los foros, y también me gustaría buscar alguna solución para prevenir el spam.
    Probaré todo esto y ya os cuento.

    Comment by lorquino — 23/4/2007 @ 11:53

  62. si a mi tb me tiene cansado el spam

    Comment by fede — 20/9/2008 @ 23:08

  63. Simplemente hermoso!!! Gracias por compartir tal, artículo interesante e informativo. - Basura

    Comment by Basura — 14/1/2010 @ 17:54

RSS feed for comments on this post. TrackBack URI

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>


Anti-Spam by WP-Morph 

Creative Commons License
This work is licensed under a Creative Commons License.
EWWV  AWStats  Site Meter 23 queries. 0.088 seconds. Powered by WordPress
406021 email messages processed in this box. 10858 were spam

0