¿Cómo proteger el fichero wp-config.php de tu WordPress?

Si bien es importante que sepas cómo proteger en tu instalación WordPress el fichero wp-config.php, y por ello aquí veremos el modo de realizarlo… igual es antes incluso más importante que sepas para qué sirve y el motivo de querer protegerlo.

El fichero citado se encuentra en la raíz de ficheros de tu web, y es un fichero que se crea durante la instalación de WordPress en el servidor. Este fichero es muy importante ya que en él se almacena toda la información necesaria para permitir el acceso a la base de datos: lugar donde se almacenan todos los contenidos de tu web.

Por tanto, poder ver el fichero wp-config.php, supone conocer las contraseñas de acceso a la base de datos. ¿y esto no es algo que quieras dejar muy accesible, verdad?

Aunque no es el objetivo de esta entrada, en este fichero se pueden hacer configuraciones avanzadas en tu WordPress, como habilitar la instalación multisite y otras muchas en referencia a temas de rendimiento y seguridad.

De modo nativo este fichero que queremos proteger por contener información delicada… se crea a partir de otro llamado wp-config-sample.php, el cual tras instalar WordPress ya puedes borrar sin problema; pudiendo para ello usar mi plugin Simple Blueprint Installer que entre otras cosas te permite borrar este fichero desde el backend.

Para proteger el fichero wp-config.php sólo tienes que moverlo de su sitio por defecto a un nivel superior, lo que supondrá sacarlo de la zona public accesible por los navegadores.

Ejemplo por defecto: dominio.com/www/public_html/wp-config.php

Ejemplo seguro: dominio.com/www/wp-config.php

De este modo WordPress puede seguir leyendo el citado fichero (lo detecta de modo automático) para así acceder a la base de datos y gestionar tu contenido como buen CMS que es… pero el mismo queda fuera de lo que el servidor gestiona como contenido público.

Si por algún problema (ya existe otro fichero igual en el nivel superior o configuración hosting, …) No puedes o simplemente no quieres mover el fichero wp-config.php a una zona más segura un nivel arriba de la carpeta por defecto de instalación, también puedes protegerlo añadiendo unas líneas de código en tu fichero .htaccess el cual también se encuentra en el mismo nivel raiz junto con todos los ficheros y carpetas del core de WordPress.

<files wp-config.php>
order allow, deny
deny from all
</files>

Hay otro modo más avanzado de poder situarlo casi donde quieras… si así lo indicas. La idea tras moverlo a un lugar seguro, es crear en su lugar por defecto el fichero wp-config.php pero sólo con un par de líneas de código, que lo que hacen es indicar donde se encuentra realmente el fichero wp-config.php mediante un require.

<?php
 
define('ABSPATH', dirname(__FILE__) . '/');

require_once(ABSPATH . '../path/to/wp-config.php');

Recuerda que para realizar estas acciones necesitas acceso a las carpetas por medio del panel de tu hosting o al menos un acceso por ftp mediante por ejemplo Filezilla.

Nota: En realidad nadie debería poder tener acceso a leer desde el navegador un fichero php, pero…  como este en concreto tiene información tan sensible, no cuesta nada evitar que esto suceda ante un fallo de php, WordPress, el servidor,… etc que por algún motivo dejen una puerta abierta aunque sea un bug temporal.