Bloqueando spam en WordPress usando Apache

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.

[tags]wordpress, spam[/tags]

DeliciousTumblrTuentiShare
Esta entrada fue publicada en Geek World, Software libre. Guarda el enlace permanente.

6 respuestas a Bloqueando spam en WordPress usando Apache

  1. Impresionante. No he entendido nada.

  2. holbeist dijo:

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

  3. RinzeWind dijo:

    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.

  4. awifredo dijo:

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

  5. holbeist dijo:

    Gracias muchas.

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

  6. RinzeWind dijo:

    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.