Wordpress

Como proteger el archivo wp-config.php de intrusos

En nuestro host para wordpress existe el archivo wp-config.php donde se encuentra toda la informacion de nuestro blog. Al decir toda la informacion me refiero a las credenciales de usuarios con todo y contraseñas para conectarse a la base de datos.

Este archivo es muy sencible y puede ser utilizado por cualquier atacante para adueñarse por completo de nuestro blog y toda su informacion.

Proteger con .htaccess

Una forma sencilla de esconder o restringir el acceso a extraños (hackers, crackers) a nuestro archivo de configuracion es utilizando los poderes del htaccess. Dentro de este archivo agregamos

# proteccion de wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>

Con estas sencillas lineas, todo el acceso desde internet a la configuracion estara denegado.

Mover el archivo wp-config.php

Otra forma de proteger y denegar la lectura de nuestras configuraciones es moviendo el archivo wp-config.php afuera del area publica de nuestro blog. En otras palabras, si tenemos nuestro sitio en /home/usuario/blogger/ podemos crear el nuevo archivo en /home/usuario/ y asi nadie podra leerlo.

Crear el archivo dbconfig.php

Empezamos con crear un nuevo archivo conteniendo la informacion de conexion a la base de datos mysql:

    <?php
    define('DB_NAME', 'your_db_name');    // El nobre de tu base de datos
    define('DB_USER', 'your_db_username');     // El usuario de MySQL
    define('DB_PASSWORD', 'your_db_pass'); // password
    define('DB_HOST', 'localhost');    // El servidor
     
    // You can have multiple installations in one database if you give each a unique prefix
    $table_prefix  = 'yourdbprefix_';   // el prefijo de las tablas, casi siempre es wp_
    ?>

Ahora, bien este archivo lo guardamos en el directorio superior al de nuestro sitio web, y modificamos el original, como veran a continuacion.

Editando un wp-config.php seguro

Ahora solo queda modificar nuestro archivo wp-config.php original y quitar toda la informacion de conexion, para luego tan solo incluir el path del archivo real dbconfig.php.

    <?php
    include('/home/usuario/dbconfig.php');
     
    // Change this to localize WordPress.  A corresponding MO file for the
    // chosen language must be installed to wp-includes/languages.
    // For example, install de.mo to wp-includes/languages and set WPLANG to 'de'
    // to enable German language support.
    define ('WPLANG', '');
     
    /* That's all, stop editing! Happy blogging. */
     
    define('ABSPATH', dirname(__FILE__).'/');
    require_once(ABSPATH.'wp-settings.php');
    ?>

Como se daran cuenta el archivo ya no contiene ninguna informacion sensible, ya que todo esta en dbconfig.php fuera del alcance de extraños.

3 Comments

  1. Hola cuando agrego # proteccion de wpconfig.php

    el código que comentas, etc etc … también se bloqueará para mi yo mismo no podré tener acceso ???

Comentario, Preguntas o agradecimientos?

%d bloggers like this: