WordPress y problemas con el módulo ModSecurity de Apache

Apache_securityVoy a explicar un problema que tuve con WordPress, que me tuvo 2 días dando vueltas, probando cosas, pidiendo ayuda, … y no conseguí nada hasta que José Román Hernández de Emezeta dió con el problema.

Estaba creando un artículo sobre Procedures en MySQL para hacer estadísticas, cuando enganché código de la Procedure y al darle a guardar, se producía un error. La página que se mostraba era una página 404 del tema actual, pero la ruta iba a /wp-admin/post.php .

Hize pruebas, y descubrí que se trataba de las palabras “CREATE PROCEDURE”. Seguí haciendo pruebas, hasta el punto que instalaba un WordPress nuevo, y tal como entraba en el Panel de Administración con la contraseña creada en la instalación, lo primero que hacía era ir a crear una Entrada, escribía “CREATE PROCEDURE” como texto, le daba a guardar, y salía el error. Me sentí bastante bloqueado, pedí ayuda a José Román Hernández y me dijo:

El problema que tienes es de permisos. Probablemente no tenga nada que ver con WordPress, sino lo que ocurre es que está detectando ese texto (CREATE PROCEDURE) como un ataque (SQL Injection, probablemente) y te lo bloquea.

Lo más probable es que sea tema de configuración de apache. Si eres administrador de tu propio hosting y tienes acceso a los archivos de configuración tendrás que hacerlo, sino contactar con el soporte técnico para que te den una solución. Puede ser cuestión de un módulo de apache (ModSecurity) o simplemente la configuración general.

Rápidamente hize la misma prueba que fallaba, pero esta vez en un XAMPP en mi ordenador. Efectivamente no falló y se trataba un problema del hosting. Me puse en contacto con ellos, me pidieron una cuenta en mi WordPress para poder ver el error, y rápidamente me lo solucionaron.

mod-security

El problema era un módulo de seguridad extra para Apache, ModSecurity, que desactivaron modificando el archivo .htaccess añadiendo las siguiente líneas:

SecFilterEngine Off
SecFilterScanPOST Off

En el email de contestación de la empresa de hosting, me explicaron el porque del problema:

Este módulo de seguridad no es recomendable desactivarlo ya que se encarga de controlar multitud de malas acciones de usuarios que tratan de “reventar” sitios. Estos CMS (wordpress, joomla, etc…) al ser de código abierto, cualquiera puede acceder a su código y buscar agujeros para poder entrar en el sistema.

Si desea tener desactivado este módulo en este directorio sería conveniente que se protegiera la carpeta con una contraseña a través del servidor web.

Ahora, cuando hago una entrada con palabras malintencionadas que el ModSecurity detecta como un ataque, como por ejemplo esta que contiene las palabras que me produjeron el error, tengo que deshabilitar el ModSecurity comentando esas dos líneas, y después volver a dejarlas comentadas.

Si esta entrada sirve para alguien con problemas similares, será una entrada merecida.

NOTA: Otra cosa que ModSecurity bloquea de WordPress es la subida de imágenes. Tengo que usar la opción de subir archivos a traves del navegador, porque a través de la aplicación flash de WordPress, nunca se acaban de subir. Otra incomodidad a cambio de mayor seguridad.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>