Las penas del Agente Smith

29/6/2006

Bloqueando spam en WordPress usando Apache

Archivado en: Software libre, Geek World — Perpetrado por RinzeWind a las 7:47 am

Hace un par de días mi blog sufrió una avalancha de spam. El plugin de Akismet los paró todos: 5000 en una noche. Por muy bueno que sea el sistema antispam que haya instalado, cada comentario ocasiona que se tenga que ejecutar el script en php. Si llegan varios comentarios por segundo, el sistema queda hecho una porquería por la elevada carga que le supone.

Resultó que esa avalancha de mensajes no estaba dirigida a esta dirección, sino a la antigua, de forma que me puse a buscar un método para bloquear todos los comentarios que no se originasen en este dominio: siempre que se produce un comentario en WordPress, la página de origen (el referer) debe ser la del artículo sobre el cual se comenta. Y así buscando encontré esta pequeña maravilla, que seguramente les será muy útil a aquellos que utilizan el mismo sistema de edición que yo. Simplemente hay que añadir en el directorio raíz del blog un archivo .htaccess (o editar uno que probablemente ya exista si utilizamos enlaces limpios) con el siguiente contenido:

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*rinzewind.org.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>

Obviamente, habrá que sustituir rinzewind.org por el dominio del blog donde se piense utilizar esto. Mano de santo.

Technorati Tags: ,

6 Comentarios

  1. Impresionante. No he entendido nada.

    Comentario por El Teleoperador — 29/6/2006 @ 9:33 am

  2. Aprovecharé el temita Wordpress para ponerme off-topic. He visto que centras tus fotos con “text-align: center” en vez de usar el tag “center”. Supongo que tendrás alguna razón relacionada con validaciones o similar para no usarlo, pero ¿generas también el código XHTML con CSS en línea? ¿O sabes de algún plugin para insertar en línea algo de los .css sólo en los feeds? Y el código que generas ¿lo introduces automáticamente o a mano para cada imagen?

    Gracias (y díme si prefieres este tipo de consultas vía e-mail).

    Comentario por holbeist — 29/6/2006 @ 8:03 pm

  3. Pues te digo: lo pongo así porque “center” no es estándar en XHTML 1.0 Transitional (que es lo que usa la plantilla que utilizo). Y cada artículo me lo pico entero, salvo lo de meter la imagen, que el WordPress tiene una función que mete la etiqueta con su id particular, pero nada más.

    Y para meter CSS en los feeds, ni idea. Lo que suele funcionar es meter el CSS en línea en el elemento que sea.

    Comentario por RinzeWind — 29/6/2006 @ 10:51 pm

  4. Icreíble…..muchas gracias RinzeWind, porque Akismet ultimamente no me está funcionando demasiado bien.

    Comentario por awifredo — 30/6/2006 @ 9:35 am

  5. Gracias muchas.

    PD: Me tiene hipnotizado la ministra de tu flickr con la esvástica al fondo, tiene algo de “senatriz galáctica fatale”.

    Comentario por holbeist — 30/6/2006 @ 11:27 am

  6. awifredo: a mí me funciona bastante bien, pero este método es mano de santo para conseguir que mucho spam no llegue ni siquiera al filtro.

    holbeist: sí, tiene un algo. Estaría mucho mejor con el uniforme de Star Trek.

    Comentario por RinzeWind — 30/6/2006 @ 7:52 pm

Fuente RSS para los comentarios de esta entrada.

Lo siento, el formulario de comentarios está deshabilitado en estos momentos. Sólo se permite comentar en artículos de menos de 30 días de antigüedad. Para más información, visitar esta entrada.

Gestionado con WordPress