WordPress: Cómo impedir el acceso al archivo wp-config.php
¿Por qué es tan importante proteger wp-config.php?
Si has estado un tiempo en el mundo de WordPress, habrás oído hablar de este archivo misterioso llamado wp-config.php. No es un simple archivo más; es el corazón técnico de tu instalación. Contiene las credenciales de acceso a tu base de datos, las claves secretas de autenticación (salts) y la configuración crítica de tu sitio.
Piénsalo de esta manera: es como la llave maestra de tu casa. Si un atacante logra leer este archivo, tendría acceso directo a tu base de datos, donde se almacenan todos tus artículos, usuarios, contraseñas y datos sensibles. Por eso, impedir el acceso a wp-config.php es una de las primeras líneas de defensa en la seguridad WordPress.
Un atacante podría intentar acceder directamente a tudominio.com/wp-config.php mediante el navegador. En un servidor bien configurado, el archivo se ejecuta en lugar de mostrarse, pero si hay un fallo de configuración, podría ver el contenido en texto plano. La buena noticia es que puedes tomar medidas efectivas para blindar este archivo y evitar dolores de cabeza. Vamos a ello.
¿Qué contiene realmente wp-config.php?
Antes de entrar en materia, es útil que sepas qué hay dentro de este archivo. Así entenderás por qué es tan valioso para los ciberdelincuentes.
- Nombre de la base de datos (DB_NAME).
- Usuario y contraseña de la base de datos (DB_USER, DB_PASSWORD).
- Host de la base de datos (DB_HOST).
- Claves de autenticación únicas (AUTH_KEY, SECURE_AUTH_KEY, etc.).
- Prefijo de las tablas de la base de datos (normalmente
wp_). - Configuraciones personalizadas como el modo depuración o límites de memoria.
Imagina que alguien obtiene esa información. Podría conectarse a tu base de datos desde cualquier lugar del mundo, robar información o incluso inyectar código malicioso. Por eso, proteger este archivo no es opcional; es imprescindible.
Método 1: Bloquear el acceso mediante el archivo .htaccess
Si tu servidor usa Apache (lo más común en el alojamiento compartido), el archivo .htaccess es tu mejor amigo. Puedes añadir reglas específicas para denegar cualquier solicitud directa a wp-config.php.
Paso a paso para editar .htaccess
- Accede a tu hosting mediante FTP o el administrador de archivos de tu panel de control (cPanel, Syspanel, etc.).
- Localiza la carpeta raíz de tu WordPress. Normalmente es
public_htmlowww. - Busca el archivo
.htaccess. Si no lo ves, activa la opción de mostrar archivos ocultos. - Descarga una copia de seguridad del archivo antes de editarlo. Esto es importante por si algo sale mal.
- Abre el archivo con un editor de texto plano (nunca uses Word o editores con formato).
- Añade el siguiente bloque de código al principio del archivo, justo después de
# BEGIN WordPresso antes de cualquier otra directiva:
<FilesMatch "^wp-config\.php$">
Order Allow,Deny
Deny from all
</FilesMatch>
- Guarda los cambios y sube el archivo de nuevo a tu servidor.
[WARNING] Si tu servidor usa Nginx en lugar de Apache, este método no funcionará. Más adelante te explico cómo hacerlo en Nginx.
¿Por qué funciona este código?
Le dice al servidor que cualquier solicitud que coincida con el nombre wp-config.php sea rechazada automáticamente. El usuario verá un error 403 (Acceso prohibido) en lugar del contenido del archivo. Simple y efectivo.
Método 2: Cambiar la ubicación del archivo wp-config.php
Otra técnica avanzada es mover el archivo wp-config.php a una carpeta que no sea accesible desde el navegador. WordPress permite que este archivo se encuentre en un directorio un nivel por encima de la raíz de tu instalación.
Cómo hacerlo
- Conéctate a tu servidor por FTP o mediante el administrador de archivos.
- Crea una carpeta nueva fuera de la raíz pública. Por ejemplo, si tu WordPress está en
public_html, crea la carpeta enhome/tuusuario/configuracion/. - Mueve el archivo
wp-config.phpa esa carpeta. - Asegúrate de que la carpeta no tenga permisos de lectura para otros usuarios. Los permisos recomendados son
700o750. - WordPress detectará automáticamente el archivo en esa ubicación. No necesitas cambiar nada en el código.
[TIP] Algunos paneles de control como Syspanel (que se accede por el puerto 2106) te permiten mover archivos fácilmente con su gestor de archivos. Si usas este panel, busca la opción de mover y selecciona el archivo.
Ventajas de este método
- El archivo queda fuera del alcance de cualquier solicitud web.
- Es una capa extra de seguridad que no depende de la configuración del servidor.
- Aunque alguien adivine la ruta, no podrá acceder porque no existe en la raíz pública.
Método 3: Proteger wp-config.php desde el panel de control (Syspanel)
Si tu hosting utiliza Syspanel (recuerda que el acceso es a través del puerto 2106), tienes una forma muy sencilla de proteger este archivo sin tocar código.
Pasos para proteger con Syspanel
- Accede a tu panel Syspanel escribiendo
tu-dominio.com:2106en el navegador. - Inicia sesión con tus credenciales de administrador.
- Busca la sección de "Administrador de archivos" o "Gestor de archivos".
- Navega hasta la carpeta raíz de tu WordPress.
- Haz clic derecho sobre
wp-config.phpy selecciona "Permisos" o "Proteger archivo". - Cambia los permisos a
400o440. Esto significa que solo el propietario puede leerlo, y nadie puede ejecutarlo.
[INFO] Los permisos 400 hacen que el archivo sea solo de lectura para el propietario. En la práctica, impide que el servidor web lo procese como un script, por lo que no se mostrará su contenido.
Método 4: Denegar acceso desde Nginx
Si tu servidor usa Nginx, la cosa cambia. Nginx no usa .htaccess, pero puedes bloquear el acceso directamente en el bloque de configuración del servidor.
Cómo hacerlo
- Conéctate a tu servidor por SSH.
- Localiza el archivo de configuración de tu sitio. Suele estar en
/etc/nginx/sites-available/tu-dominio.com. - Edita el archivo con un editor como
nanoovim. - Dentro del bloque
server { ... }, añade lo siguiente:
location ~* ^/wp-config\.php$ {
deny all;
return 403;
}
- Guarda los cambios y reinicia Nginx con el comando
sudo systemctl reload nginx.
[TIP] Si no tienes acceso por SSH, contacta con tu proveedor de hosting y pídeles que añadan esa regla por ti. Es un procedimiento estándar.
Método 5: Añadir autenticación adicional (doble capa)
Si quieres llevar la protección al siguiente nivel, puedes añadir una contraseña extra para acceder a cualquier archivo PHP en tu directorio de administración. Esto no protege directamente wp-config.php, pero dificulta el acceso a archivos sensibles.
Usar contraseña de directorio con .htaccess
- Crea un archivo llamado
.htpasswden una carpeta segura fuera de la raíz pública. - Genera un hash de contraseña. Puedes usar herramientas online o el comando
htpasswden tu servidor. - Añade lo siguiente a tu
.htaccess:
AuthType Basic
AuthName "Acceso restringido"
AuthUserFile /ruta/completa/al/.htpasswd
Require valid-user
- Sube el archivo y prueba a acceder. Te pedirá usuario y contraseña antes de mostrar cualquier contenido PHP.
[WARNING] Este método es más complejo y puede dar problemas si no se configura bien. Asegúrate de tener acceso por FTP para revertir los cambios si algo falla.
Método 6: Desactivar la edición de archivos desde el panel de administración
Aunque no es una protección directa del archivo, desactivar la edición de archivos desde el escritorio de WordPress evita que un atacante con acceso al panel pueda modificar wp-config.php.
Cómo hacerlo
- Abre el archivo
wp-config.phpcon un editor de texto. - Añade la siguiente línea justo antes de la línea que dice
/* That's all, stop editing! */:
define('DISALLOW_FILE_EDIT', true);
- Guarda el archivo y vuelve a subirlo.
[INFO] Esta constante impide que aparezcan los editores de archivos y temas en el panel de administración. Es una práctica recomendada para cualquier sitio en producción.
¿Qué más puedes hacer para reforzar la seguridad WordPress?
Proteger wp-config.php es solo una pieza del rompecabezas. Para que tu sitio esté realmente seguro, te recomiendo implementar estas buenas prácticas:
- Mantén WordPress actualizado (núcleo, temas y plugins).
- Usa contraseñas fuertes para todos los usuarios, especialmente administradores.
- Instala un plugin de seguridad como Wordfence o Sucuri.
- Activa la autenticación en dos pasos (2FA) para el panel de administración.
- Haz copias de seguridad periódicas y guárdalas en un lugar externo.
- Cambia el prefijo de las tablas de la base de datos (de
wp_a algo único). - Limita los intentos de inicio de sesión para evitar ataques de fuerza bruta.
Preguntas frecuentes (FAQ)
1. ¿Puedo borrar el archivo wp-config.php?
No, jamás lo borres. Sin él, WordPress no puede conectarse a la base de datos y tu sitio dejará de funcionar por completo. Lo que debes hacer es protegerlo, no eliminarlo.
2. ¿Qué hago si veo un error 500 después de editar .htaccess?
Eso significa que hay un error de sintaxis en el archivo. Revisa el código que has añadido, asegúrate de que no haya espacios extra y de que esté dentro de las etiquetas correctas. Si no puedes arreglarlo, restaura la copia de seguridad del archivo.
3. ¿Los permisos 400 afectan al rendimiento de mi sitio?
No, no afectan al rendimiento. Solo impiden que otros usuarios (incluidos los atacantes) lean el archivo. WordPress sigue funcionando con normalidad.
4. ¿Es necesario proteger wp-config.php si mi sitio es pequeño?
Sí, absolutamente. Los ataques automatizados no distinguen entre sitios grandes y pequeños. De hecho, los sitios pequeños suelen ser objetivos más fáciles porque sus propietarios descuidan la seguridad.
5. ¿Puedo usar estos métodos en WordPress.com?
No, estos métodos aplican únicamente a WordPress autohospedado (WordPress.org). En WordPress.com, el alojamiento está gestionado y no tienes acceso al servidor.
6. ¿Qué es Syspanel y cómo accedo?
Syspanel es un panel de control de hosting alternativo a cPanel. Se accede escribiendo tu-dominio.com:2106 en el navegador. Desde ahí puedes gestionar archivos, bases de datos y configuraciones del servidor.
Conclusión
Proteger wp-config.php es una de las medidas más efectivas que puedes tomar para fortalecer la seguridad WordPress. No importa si eres un usuario novato o un desarrollador avanzado; los métodos que te he mostrado son fáciles de implementar y no requieren conocimientos profundos de programación.
Empieza por el método que mejor se adapte a tu tipo de servidor (Apache o Nginx) y, si puedes, combina varios de ellos para tener una protección en capas. Recuerda que la seguridad no es un destino, sino un proceso continuo. Revisa periódicamente tu configuración y mantente al día con las últimas amenazas.
Tu sitio es tu activo digital más valioso. No escatimes en protegerlo. Si tienes alguna duda, no dudes en contactar con tu proveedor de hosting o con un profesional de seguridad. Tu tranquilidad no tiene precio.
