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).

![[xml]](/images/xml.gif)
