Skip to main content

Protege el archivo wp-config.php

El archivo wp-config.php es uno de los elementos más críticos de una instalación de WordPress. Contiene configuraciones esenciales y datos sensibles, como las credenciales de la base de datos, claves de seguridad y otros parámetros de configuración del sitio. Proteger este archivo es vital para mantener la integridad y la seguridad de tu sitio web. Aquí te explico cómo y por qué protegerlo:

¿Por qué proteger el archivo wp-config.php?

  1. Credenciales de la base de datos: El archivo contiene el nombre de usuario y la contraseña de la base de datos. Si un atacante accede a estas credenciales, puede controlar completamente la base de datos de tu sitio.

  2. Claves de seguridad: Contiene claves y sales de seguridad que WordPress utiliza para mejorar la encriptación de la información de las cookies. Si estas claves son comprometidas, la seguridad de las sesiones de usuario también se verá afectada.

  3. Configuraciones sensibles: Incluye varias configuraciones de WordPress, como el prefijo de las tablas de la base de datos y otras opciones que pueden ser explotadas si no están adecuadamente protegidas.

¿Cómo proteger el archivo wp-config.php?

Hay varias formas de proteger el archivo, la primera es bloquear el  acceso desde el archivo .htaccess, para ello vamos a añadir reglas al archivo .htaccess para prevenir que el archivo wp-config.php sea accesible públicamente.

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

Asegurar con permisos de archivo: Ajustar los permisos del archivo para que solo el propietario tenga acceso de escritura, y el servidor web tenga solo permisos de lectura.

chmod 440 wp-config.php

Si tienes tu propio servidor, otra opción es mover el archivo fuera del directorio raí,: WordPress permite mover el archivo wp-config.php a un nivel superior al directorio raíz de la instalación. Esto puede evitar que sea accesible a través del navegador web.

// Mover el archivo wp-config.php al directorio superior
// Ejemplo para servidores Apache
if (file_exists(dirname(__FILE__) . '/../wp-config.php')) {
    include(dirname(__FILE__) . '/../wp-config.php');
    exit;
}