Saltar al contenido

Proteger un blog WordPress del spam

Introducción

Uno de los problemas que uno se encuentra nada más instalar WordPress es la cantidad ingente de comentarios spam que inundan el blog. A pesar de que una configuración óptima de los comentarios puede ayudar, es necesario proteger el blog tomando al menos un par de medidas adicionales. Por ello, antes de nada es importante que en el panel de administración del blog en la sección Ajustes > Comentarios tener habilitadas las siguientes casillas:

  • Otros ajustes de comentarios > El autor del comentario debe rellenar el nombre y el correo electrónico.
  • Para que un comentario aparezca > El autor del comentario debe tener un comentario previamente aprobado (si no se desea moderar todos los comentarios proporciona una seguridad adicional).
  • Moderación de comentarios > Mantener un comentario en espera si contiene más de 2 enlaces (las entradas de comentarios con spam habitualmente contienen más de dos enlaces por lo que es otra buena medida para moderarlos).

Una vez realizada la configuración mínima de los comentarios es indispensable instalar dos plugins como mínimo: Uno que proporcione filtrado (Akismet o una alternativa gratuita como Antispam Bee) y otro que proporcione un método para discriminar las personas de los autómatas (robots) que introducen los comentarios indeseados (como un CAPTCHA por ejemplo).

Plugins de filtrado

Existen multiud de plugins antispam para WordPress. En cambio, sólo se van a tratar dos de los más populares: Akismet y Antispam Bee.

Akismet

Este plugin se proporciona instalado por defecto con WordPress. Sin embargo, es necesario activarlo en Plugins > Plugins instalados > Activar > Activa tu cuenta de Akismet y pulsar sobre el botón Consigue tu clave API, el cual abrirá una pestaña en el navegador el URL http://akismet.com/wordpress/. En la web de Akismet pulsar sobre el botón GET AN AKISMET API KEY, acción que cargará un formulario web para registrarse. En caso de disponer de una cuenta de WordPress.com se puede utilizar ésta para autenticarse a través del enlace I already have a WordPress.com account! y autorizar a Akismet a acceder a dicha cuenta.

Antispam Bee

Pese a que por defecto WordPress instala (aunque no activa) el plugin Akismet, en la mayoría de blogs para poder utilizarlo en función del tipo de éste es necesario pagar una licencia, sin contar además que Antispam Bee a diferencia de Akismet no almacena información personal del sitio y es totalmente anónimo. Por estos motivos es una alternativa bastante interesante y por la que se ha optado por incluirlo en este blog.

Para instalar el plugin en el panel de administración ir a Plugins > Añadir nuevo y en el cuadro de buscar plugins escribir «Antispam Bee» (sin las comillas) y pulsar en Buscar plugins. También se puede instalar manualmente descargándolo de su página http://antispambee.com/. Una vez instalado pulsar sobre el enlace Activar plugin.

Para configurarlo hay que acceder a Plugins > Antispam Bee > Ajustes, aunque la configuración por defecto en principio suele servir para la mayoría de los propósitos.

¡Consejo! WordPress «engorda» con cada plugin instalado, por lo que si se utiliza Antispam Bee en vez de Akismet lo mejor es desinstalar este último a través de Plugins > Plugins instalados > Akismet > Borrar > Sí, quiero borrar estos archivos.

Plugins de CAPTCHA

En el paso anterior se ha instalado una herramienta que analiza el contenido de los comentarios para discernir si son spam o no. Pero esto no es suficiente ya que un «ejército malvado» de bots spammers intentarán rellenar todo tipo de formularios en el blog y sólo hay una forma de impedir que lo hagan: la realización de una prueba de Turing inversa (inversa porque las pruebas las realiza una máquina y no un humano) para poder discernir a los humanos de los robots y que sean sólo los primeros los que puedan terminar de enviar los formularios.

BotDetect WordPress CAPTCHA

Bajo licencia GPLv2 este plugin permite a través de CAPTCHAs detectar los usuarios reales de los robots que siembran de comentarios spam los blogs. Y no sólo eso; también permite evitar que los robots puedan vulnerar la página registro de nuevo usuario evitando crear falsos usuarios así como la de login mediante métodos de ataques automatizados.

Tras activar el plugin se nos muestra el siguiente mensaje:

You are almost done! BotDetect WordPress Captcha Plugin requires you to deploy the BotDetect PHP Captcha library to your WordPress server.
Please click the «Install BotDetect Captcha library» button to download the latest BotDetect PHP Captcha Library from captcha.com site.

Para finalizar la instalación basta con introducir una dirección de correo electrónico en el formulario y presionar el botón Install BotDetect Captcha Library. La dirección de correo es una mera formalidad y sólo será utilizada para comunicar actualizaciones o novedades acerca del plugin.

Finalmente se instala la librería PHP necesaria y aparece por defecto habilitada la casilla Automatically install library after future plugin updates la cual se recomienda dejar activada y se presiona el botón OK, let’s move forward. A continuación se muestra la configuración de BotDetect Captcha Library por defecto y que no es necesario alterar, pues ya es adecuada por defecto y protege todos los tipos de formulario (autenticación, registro de usuarios, recuperación de contraseña y comentarios).

Ejemplo de CAPTCHA
Con los CAPTCHA casi todo son ventajas. La pega: pueden complicar la navegación a las personas con discapacidad, pero por suerte este plugin contiene un botón para escuchar el contenido (eso sí, en inglés).

En caso de que se nos muestre el error ERROR: BotDetect requires the GD library. You can read more about installing/enabling it at: http://php.net/manual/en/book.image.php. es que falta por instalar dicha librería. En Debian es fácil y no es necesario hacerlo manualmente siguiendo los pasos descritos en la documentación oficial de PHP, siendo suficiente con abrir la consola y ejecutar el siguiente comando:

apt-get install php5-gd

Conclusiones

Cualquier sitio web debe ofrecer algún mecanismo mínimamente efectivo contra el spam. En el caso de una web desarrollada con el CMS WordPress es necesario ofrecer un mecanismo de tres vías para asegurar la efectividad:

  1. Un CAPTCHA que filtre la mayoría de robots spammers para que sólo puedan publicar comentarios los usuarios humanos.
  2. Una configuración correcta de los comentarios la cual asegure que tanto usuarios humanos como robots no puedan realizar un primer comentario sin ser moderado por el administrador y, en caso de que no sea el primero, sólo serán moderados los que contengan dos o más enlaces, reforzando así el mecanismo del punto anterior (siempre y cuando sea viable moderar parte de los comentarios, claro está).
  3. Un filtro que analice el contenido de los mensajes, independientemente de que hayan sido escritos por humanos o robots, buscando patrones spam como complemento adicional a los dos mecanismos anteriores.
Publicado enAdministración de sistemasDesarrollo de softwareSeguridad de Sistemas