El archivo wp-config.php es uno de los archivos más importantes de un sitio WordPress. Contiene la configuración crítica de la instalación, incluyendo las credenciales de la base de datos y las claves de seguridad. Si un atacante consigue acceder a este archivo, podría comprometer por completo el sitio.
1. ¿Qué contiene wp-config.php?
Si un atacante logra acceder o descargar tu archivo de configuración, obtendrá los datos de acceso directo a la base de datos MySQL, prefijos de tablas y claves secretas (SALT).
Normalmente incluye información como:
- Nombre de la base de datos
DB_NAME - Usuario de la base de datos
DB_USER - Contraseña de la base de datos
DB_PASSWORD - Servidor de la base de datos
DB_HOST - Claves de autenticación
SALTsque protegen las sesiones de los usuarios. - Prefijo de las tablas
$table_prefix - Configuraciones avanzadas de WordPress.
¿Por qué es un riesgo?
En una instalación correctamente configurada, wp-config.php no debería ser accesible desde el navegador. Sin embargo, una mala configuración del servidor web o una vulnerabilidad podría permitir:
- Robo de credenciales de la base de datos.
- Acceso a toda la información del sitio.
- Modificación o eliminación de contenido.
- Ejecución de código malicioso.
¿Cómo restringir el acceso?
Método 1: Bloquear el acceso mediante .htaccess (Apache).
Añade estas líneas al archivo .htaccess ubicado en la raíz del sitio:
Si utilizas una versión antigua de Apache:
Método 2: Bloquear el acceso en Nginx.
Añade esta regla en el bloque del servidor:
Después reinicia Nginx:
Método 4: Colocar wp-config.php fuera del directorio público.
En muchos servidores puedes mover el archivo un nivel por encima de public_html o htdocs.
WordPress lo detectará automáticamente.
Método 5: Mantener PHP funcionando correctamente.
Si el servidor deja de interpretar archivos PHP y los sirve como texto plano, wp-config.php podría quedar expuesto. Comprueba que PHP esté correctamente configurado y actualizado.
Método 6: Desactivar el listado de directorios.
En Apache:
Esto evita que un atacante pueda listar el contenido de directorios mal configurados.
Método 7: Mantener WordPress actualizado.
Mantén siempre al día:
- WordPress
- Plugins
- Temas
- PHP
Muchas vulnerabilidades que permiten leer archivos sensibles ya han sido corregidas en versiones recientes.
¿Cómo comprobar si está protegido?
Abre en el navegador:
https://tudominio.com/wp-config.php
El resultado no debe mostrar el contenido del archivo
Lo esperado es recibir alguno de estos códigos:
- 403 Forbidden (ideal)
- 404 Not Found (también válido)
- 500 Internal Server Error (depende de la configuración)
Si el navegador muestra el contenido del archivo o solicita descargarlo, el servidor está gravemente mal configurado y debe corregirse de inmediato.
Buenas prácticas adicionales
- Utiliza HTTPS.
- Desactiva la edición de archivos desde el panel de WordPress:
define('DISALLOW_FILE_EDIT', true); - Realiza copias de seguridad periódicas.
- Implementa un firewall de aplicaciones web (WAF), como el de un CDN o un complemento de seguridad.
- Supervisa los registros del servidor para detectar intentos de acceso a
wp-config.php.
En condiciones normales, un usuario nunca debería poder acceder a wp-config.php desde Internet. Si un escáner de seguridad detecta que este archivo es accesible, se trata de una vulnerabilidad crítica que debe solucionarse de inmediato.