Gripe (otra vez)

Pues sí, no sé qué me pasa, pero otra vez con la gripe (o resfriado o yo qué sé) :(

Trackback spam: ¡Solucionado!

Lo prometido es deuda. Hace unos días implementé una solución (entre comillas) para el spam en los trackbacks, que ya había comentado otras veces en este weblog. La idea viene de aquí. No lo he mostrado antes porque tenía que comprobar que funcionaba. Hasta hoy, ningún spam por trackback, que se suman a ningún spam por comentarios tras las mejoras que introduje en su día.

Estoy contento. Para aquellos que quieran aplicar la solución, he dejado un fichero diff en esta dirección. El parche, como regalo, contiene dos cosas:

* Una implementación del método anti-spam para trackbacks.
* Elimina el "rel=nofollow" de los enlaces (no estoy para nada de acuerdo con eso).

Instrucciones:

1. Descargar el fichero
2. Ir al directorio de wordpress (en mi distribución /usr/share/wordpress, y ejecutar:

patch -p1 < wp1 .5-trackback-anti-spam-diff.diff


Para los más intrépidos, por supuesto, hay otra opción:

links -source http://neuromancer.inf.um.es/blog/wp-files/wp1.5-trackback-anti-spam-diff.diff | patch -p1


Y he aquí el código cortesía de enscript. Como veis, utilizo la fecha con el comando date de PHP. Si queréis personalizar el cambio, podéis cambiar el formato de esa salida de date, por ejemplo incluyendo puntos en vez de "/":


diff -ur wordpress/wp-includes/comment-functions.php wordpress2/wp-includes/comment-functions.php
--- wordpress/wp-includes/comment-functions.php 2005-02-17 01:57:27.000000000 +0100
+++ wordpress2/wp-includes/comment-functions.php 2005-02-17 03:12:26.000000000 +0100
@@ -170,7 +170,7 @@
if ( empty( $url ) )
$return = $author;
else
- $return = "<a href='$url' rel='external nofollow'>$author</a>";
+ $return = "<a target=\"_blank\" href='$url' rel='external'>$author</a>";
return apply_filters('get_comment_author_link', $return);
}

@@ -302,7 +302,7 @@

function get_trackback_url() {
global $id;
- $tb_url = get_settings('siteurl') . '/wp-trackback.php?p=' . $id;
+ $tb_url = get_settings('siteurl') . '/wp-trackback.php/' . date("d/m/Y"). '/' . $id;

if ( '' != get_settings('permalink_structure') )
$tb_url = trailingslashit(get_permalink()) . 'trackback/';
diff -ur wordpress/wp-trackback.php wordpress2/wp-trackback.php
--- wordpress/wp-trackback.php 2005-02-17 01:57:27.000000000 +0100
+++ wordpress2/wp-trackback.php 2005-02-17 02:25:28.000000000 +0100
@@ -27,6 +27,10 @@
// trackback is done by a POST
$request_array = 'HTTP_POST_VARS';

+// Obligar a que la fecha sea la de hoy
+if (strpos($_SERVER['REQUEST_URI'], date("d/m/Y")) === false)
+ trackback_response(1, 'Sorry, bad trackback URL. Spam protection. Double-check your trackback URL.');
+
if (!$tb_id) {
$tb_id = explode('/', $_SERVER['REQUEST_URI']);
$tb_id = intval($tb_id[count($tb_id)-1]);


Referer Spam

Pues no me había yo dado cuenta de que estaban haciendo spam con las cabeceras referer. En barrapunto aparece una historia muy interesante con enlaces que son una mina para obtener información de cómo luchar contra ese spam.

Este tipo de spam sólo es un problema para los que publican estadísticas de referers (yo no lo hago), aparte de aumentar el tráfico de internet inútilmente (y rastreramente).

Actualización: Más URLs: aquí y aquí.

Genial, Eastwood

Tengo la suerte de que hoy pongan y pueda ver "Ejecución Inminente", de Clint Eastwood. Me gustó mucho esa película. El papel de periodista fracasado lo borda.

Refactoring

Siempre me ha encantado la programación, y sobre todo el Refactoring. Me agradó el otro día ver un weblog en español sobre refactoring en programacion.com.

España está haciendo historia

Pues sí, eso ha dicho Zapatero. Y también lo he creído así. El voto a la constitución europea me emepezó a parecer desde hace un tiempo como un hito histórico. Siempre vemos en los libros de historia cosas que pasaron y cosas que la gente hizo y vió. Ahora estamos viendo la historia que vendrá.

MAME en Java, y accesible por Web.

Increíble. Ya se podía imaginar, pero el hecho de verlo ahí es sorprendente. Un remake de MAME (el emulador de máquinas recreativas de cuando éramos pequeños, al menos yo :) ) hecho en Java y accesible como un applet: aquí. Además, va muy suave.

Por cierto, ¿cuál es vuestro preferido? El mío sin duda "Black Tiger" (que creo que también se llamaba "Black Dragon").

A ver si funciona...

Voy a hacer un trackback a la anterior noticia utilizando el URI de trackback que me genera. Veremos si funciona...

Actualización: Pues nada, efectivamente funciona. La cuestión es ver si esto frena a los spammers. Como siempre, quien esté interesado le cuento cómo lo he hecho en Wordpress. Muy sencillo, la verdad; y se puede aplicar a otros CMS.

¡Por fin se me ha ocurrido algo para el spam por trackbacks!

Bueno, estoy contento. Después de darle muchas vueltas y no encontrar nada apropiado para evitar el spam en los trackbacks (en los comentarios ya está superado :P), haber habilitado las palabras claves para moderar comentarios (que no ha funcionado tampoco nada bien), se me ha ocurrido algo que creo que va a funcionar. Vayamos poco a poco:

Anatomía de un Trackback

¿Qué pasa exactamente cuando otra persona que tiene un weblog quiere hacernos un "trackback"? Muy sencillo: esa persona lee nuestra noticia, la va a enlazar en su weblog, busca en una parte de la noticia donde pone "URI para hacer el trackback" y la copia en donde su programa de Weblog le diga. El programa hace automáticamente la notificación a través de XML-RPC (lo que se conoce como trackback).

Esta notifiación, como se puede ver, no está sujeta a ningún tipo de autenticación ni nada, por lo que es campo abierto para los spammers.

Sin embargo, viendo el patrón de uso "normal" de un trackback, podemos deducir dos características claves que nos van a ayudar a prevenir el spam en este tipo de comentarios:


  1. Los trackbacks se obtienen en el momento de leer la noticia. Esto es, la URI generada para el trackback sólo tiene que ser válida durante un tiempo. Desde el momento que la persona lee la noticia hasta que escribe la suya.

  2. Los trackbacks sólo se utilizan una vez, esto es, cuando la persona que tiene otro weblog quiere escribir una noticia que se relaciona con la nuestra o nos cita.



Solución:

que las URLs generadas para el trackback cuando una persona lee la noticia sean válidas sólo por un espacio de tiempo.

OJO: Tened en cuenta que esto es diferente de los sistemas que eliminan la posibilidad de enviar comentarios y/o trackbacks a las noticias antiguas, ya que en el caso que digo, se podrá enviar trackbacks a cualquier noticia, independientemente de su antigüedad.

Voy a ver de qué manera lo implemento para que sea más fácil. Luego os cuento.

Más sobre spam (otra vez)

De lo que me doy cuenta es de que me está gustando este tema. No el del spam, sino el anti-spam. Sobre todo porque parece como una lucha en la que gana el más inteligente. Los spammers están todo el día pensando en cómo entrar en más sitios, y nosotros pensando en cómo lo hacen para impedírselo. Ademá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 todos estos "trucos".

Sí, señores, se puede hacer así el ridículo

Qué patético ridículo el de Lucía Etxebarría en "Las Cerezas". Por el contrario, qué lección (como casi siempre) de Borrell de saber estar, educación y brillantez. No había tenido la oportunidad de ver en acción a esta mujer, pero desde luego, lo ha bordado. Ahora entiendo las burlas por parte de "Caiga Quien Caiga" y otros comentarios en la línea.

PD. Soy consciente de que me quedan comentarios por resopnder... Pronto llegará. Ando algo liado.

Million Dollar Baby

Acabo de ver "Million Dollar Baby" (IMDB). ¿Qué puedo decir? Una obra maestra. Eastwood es cada vez más intimista, siempre interpretando papeles de atormentados que le van tan bien, con diálogos perfectamente hilvanados de un viejo lobo que ha vivido mucho. Es una cita ineludible con el cine, y espero que triunfe también en los Oscar. He salido del cine con un nudo en la garganta. MUY BUENA.

Juan del Olmo

Pocas veces vemos en televisión lo que hemos visto de Juan del Olmo. Vemos muchas cosas en televisión. Espectáculos ridículos de "famosos" de pacotilla, sufrimiento, guerras, etc. Pero no una emoción verdadera, una demostración sin tapujos de una rabia contenida, una identificación sin fisuras con una causa y una promesa vehemente de la defensa de unas víctimas, las del 11-M. Contrasta con un mundo en donde todo es pasajero, en donde evitamos aferrarnos a las cosas, ideas o personas. Realmente el valor de las personas se mide por la capacidad que tienen de demostrar así sus sentimientos. No conozco a este hombre, salvo por las pocas veces que lo he visto en los medios de comunicación, pero me ha conmovido, y alguna vez me gustaría tener el poder que él tiene para ayudar a los demás. Sorprendentemente contrasta con que, por lo general, precisamente la gente que tiene más poder para ayudar es la que menos humana, menos emocionada y menos apasionada se muestra.

No lo he podido evitar

¡¡¡POR DIOS!!! ¿Alguien ha visto la MIERDA de anuncio del "Brise Soplo"? Está toda la familia como gilipollas delante del aparatito preguntándose «¿Funciona?» «¡No lo sé!» «¿Cómo sé que funciona?»... Y claro, todos respiran aliviados cuando ven salir el soplo del "Brise Soplo" ¡¡¡PERO SI ES UN AMBIENTADOR!!! ¿Cómo que si funciona?!?!?! ¡¡Si funciona se HUELE!! Sin comentarios...

Lo han vuelto a hacer, más spam

En fin... No hay que cansarse de esa plaga. Pero parece 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. Ya estuve comentando este problema en otra noticia. La solución en aquel momento fue cambiar el nombre del script para enviar los trackbacks. Sabía que eso iba a ser una solución temporal, y ya le ha llegado el momento.

Parece que los spammers están contraatacando con bastante inteligencia (si se les puede llamar así). Por ejemplo, esta noticia de Mark Baker alerta de que están aumentando los mensajes de spam. Digo inteligencia porque al haber cambiado la dirección del trackback, han tenido que leer la página e identificar la dirección donde enviar el citado trackback.

Como solución temporal (lo sé, pero es que no se me ocurre otra por ahora) he introducido un filtro de palabras comunes que se puede encontrar en la web de WordPress. No durará mucho, pero es que no se me ocurre nada más. Los trackbacks son simplemente XML-RPC: están pensados para que los utilicen los ordenadores automáticamente, pero nadie pensó que se podrían utilizar malintencionadamente.

Si la cosa se pone fea, y puedo adelantar que lo hará, tendré que deshabilitar los trackbacks definitivamente :( ¿Alguno de vosotros ha ideado alguna solución para esto?

Terremotos

Coño, la verdad es que los terremotos acojonan... Acabo de sentir uno bastante interesante, en el que ves como un gilipollas cómo se mueve la casa y todo hace ruido... No sé en qué terminarán todos estos terremotos en la Región de Murcia... Mi pobre gata ya no sabe dónde meterse, lleva toda la noche mirando todas las cosas como si las hubiera visto la primera vez en su vida :(

Increíble. En serio, increíble.

Pues sí, Gene Kelly, updated :)