4 de Marzo, 2006

Spam en los trackbacks

Que ilusión, nunca había tenido spam en la bitácora :). El punto de entrada han sido los trackback, que cuando los implementé no incluí ninguna previsión anti-spam.

Anoche borré tres referencias (palabra castellana que podría valer), espero que las últimas de este tipo :P, y procedí a implementar un hack bastante simple:

/* tras verificar todo lo razonable, verificamos origen */

/* primero recogemos la página que nos hace trackback */
$pagina=file_get_contents(htmlentities($m_url));

/* si no podemos obtener la página, no hay trackback */
if($pagina==FALSE)
{
        tb_respuesta(1, "La URL parece no ser correcta"
        ." (no se ha podido cargar).");
        exit;
}

/* buscamos en la página nuestra URL, si tenemos más de
*  un punto de entrada tendríamos que buscarlos todos
*  para ser justos */
if(strpos($pagina, "http://blackshell.usebox.net")==FALSE)
{
        tb_respuesta(1, "La página apuntada por la URL"
        ." parece no hacer referencia a esta bitácora.");
        exit;
}

/* perfecto, parece que es un trackback real */
$pagina="";

Bien, en primer lugar: es un hack. En realidad habría que verificar que se trata de un enlace, pero como medida antispam es suficiente. La función tb_respuesta devuelve el mensaje en formato XML (indicando 1 como error) cuando la página apuntada por el trackback no parece apuntar a nuestra bitácora.

Y el segundo punto débil es ese parece apuntar. Con esta verificación perdemos que alguien nos pueda hace trackback para completar una anotación, aunque no nos referencie.

Ventajas e inconvenientes sobre la mesa, parece una buena solución. También puede que me haya cargado los trackback y ahora no funcionen, pero de eso ya me enteraré cuando me manden alguno y no vaya (¡o sí! ¿quién sabe? :P).

Actualización: Funciona. En los 7 días que llevamos de mes, han habido 123 intentos de trackback, y solo ha pasado uno (legítimo, además).

Anotación por Juan J. Martínez, clasificada en: php, antispam, blog.

Hay 5 comentarios

Gravatar

Eso está implementado en los pingbacks, ya que se envian si hay un enlace en el post. Pero con los trackbacks muchas veces en el post "emisor" no hay un enlace al "receptor" ( la mayoria de veces creo yo ) por lo que perderás muchos trackbacks...

por David Martínez, en 2006-03-04 12:53:12

Gravatar

Además lo comento como un punto débil. Pero tampoco tengo muchos trackbacks, así que a partir de ahora serán obligatoriamente referencias con un enlace hacia aquí, y problema de spam resuelto.

A lo que le he dado vueltas es a que estos mecanismos se pueden usar por un usuario malintencionado para acceder a una página empleando este servidor. No verá la página ni podrá recuperar de ninguna forma esa descarga, pero se me ocurre algún tipo de ataque que pueda producirse pasando cosas por GET... pero tampoco es tan preocupante (tengo logs para saber quién hizo esa petición).

Por cierto, me alegro que estés de vuelta :)

por Juanjo, en 2006-03-04 12:58:04

Gravatar

...y me he rendido. Creo que mi CMS tiene los días contados.

por Chavalina, en 2006-03-17 23:14:26

Gravatar

Hay muchas soluciones, más o menos ingeniosas. Aunque lo que tiene que haber son ganas para implementarlas :)

La decisión es tuya, pero siento que des por desauciado tu CMS :(

por Juanjo, en 2006-03-18 02:01:17

Gravatar

Ganas y tiempo.

por Chavalina, en 2006-03-18 12:29:49

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: