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:

código php
/* 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).



Publicidad

Aviso: Los siguientes comentarios pertenecen a las personas que los han enviado.
El administrador de este sitio web no es responsable de los mismos.

[comentarios] Hay 5 comentarios:

Gravatar
04/03/2006 12:53:12
mmmm
por David Martínez (IP: 80.24.254.*@80.58.15.235)
Comentario de David Martínez
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...
Gravatar
04/03/2006 12:58:04
Tienes razón
por Juanjo (IP: 192.168.0.*)
Comentario de Juanjo
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 :)
Gravatar
17/03/2006 23:14:26
Pues yo ya estoy harta...
por Chavalina (IP: 83.44.121.*)
Comentario de Chavalina
...y me he rendido. Creo que mi CMS tiene los días contados.
Gravatar
18/03/2006 02:01:17
Ánimo
por Juanjo (IP: 192.168.0.*)
Comentario de Juanjo
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 :(
Gravatar
18/03/2006 12:29:49
:-(
por Chavalina (IP: 83.44.121.*)
Comentario de Chavalina
Ganas y tiempo.

! Esta entrada no permite nuevos comentarios.

Los comentarios se bloquean automáticamente tras 15 días desde la publicación del artículo.

Si deseas comentar algo relacionado con el texto, puedes enviarme un e-mail.