El archivo wp-config.php es fundamental para el funcionamiento de cualquier sitio web basado en WordPress. En él se almacenan datos como la conexión a la base de datos entre otros muchos ajustes de configuración. En este artículo vamos a ver cómo aumentar la seguridad de WordPress modificando el archivo wp-config.php.
Por defecto el archivo wp-config.php se almacena en el directorio raíz de la instalación WordPress. De forma alternativa, podemos mover el archivo al directorio padre de dicha instalación. Es decir, si por defecto se almacena en /public_html/wordpress/wp-config.php podemos moverlo a /public_html/wp-config.php.
No es necesario modificar ninguna configuración. WordPress trata de localizar por defecto el archivo wp-config en la raíz de la instalación y, si no lo encuentra, lo busca en el directorio padre.
La seguridad de WordPress se puede fortalecer estableciento claves secretas (secret keys) en el archivo wp-config.php. Una secret key es un semilla que hace que el sitio web sea más dificil de ser hackeado añadiendo elementos aleatorios (la semilla) a la contraseña que hemos establecido. Estas claves no son obligatorias para que WordPress funcione correctamente, pero añaden una seguridad extra.
Las claves son varias y se almacenan en una serie de variables:
Tenemos dos métodos
Recordad que cualquier variable que añadamos a wp-config.php debe de escribirse debajo de la leyenda /* That’s all, stop editing! Happy blogging. */.
Las secret keys se pueden cambiar en cualquier momento. Solo afectará a aquellos usuarios que se encuentren conectados en el momento del cambio, que tendrán que volver a conectarse al cambiar la información de sus cookies.
En las instalación de WordPress podemos modificar el prefijo de las tablas que se crean en la base de datos. Por defecto es wp_
pero podemos poner el que queramos. De este modo, si alguien logra hackear nuestro sitio, le pondremos más difícil el acceso a las tablas de MySQL.
$table_prefix = 'miprefijo_';
Si queremos hacer el cambio una vez que hemos instalado WordPress tendremos que utilizar algún plugin ( Change DB Prefix o Change Table Prefix) y asegurarnos de hacer un backup de la base de datos.
Podemos cambiar la localización de algunos los directorios de la instalación de WordPress introduciendo las variables adecuadas en el fichero wp-config.php para que WordPress sepa donde localizarlos. Por ejemplo la de /wp-content. Sin embargo, es muy aconsejable probarlo antes en un servidor o instalación de desarrollo ya que si algún plugin no está bien programado y no hace uso de las constantes de localización de directorios, su sitio puede dejar de funcionar.
Tenemos que añadir dos variables a wp-config.php:
define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/nueva-ruta/wp-content' );
define( 'WP_CONTENT_URL', 'http://misitio.com/nueva-ruta/wp-content');
WP _ CONTENT _ DIR es la ruta absoluta en el servidor al directorio /wp-content; WP _ CONTENT _ URL es la URL completa del directorio.
En vez de mover todo el directorio /wp-content podemos optar por hacerlo únicamente por el directorio donde se instalan los plugins de Worpress: /wp-content/plugins. De nuevo, tenemos que añadir dos variables al fichero wp-config.php:
define( 'WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/nueva-ruta/wp-content/plugins' );
define( 'WP_PLUGIN_URL', 'http://misitio.com/nueva-ruta/wp-content/plugins');
Del mismo modo podemos mover únicamente el directorio de subida de archivos o /wp-content/uploads, aunque deberemos de darle otro nombre distinto de uploads. Tenemos que añadir esta variable al fichero wp-config.php:
define( 'UPLOADS', 'nueva-ruta/wp-content/mis-archivos' );
También podemos definir otro directorio donde se almacenen los archivos de lenguaje .mo. Es necesario definir la variable LANGDIR en wp-config.php:
define( 'LANGDIR', '/wp-content/nueva-ruta/languages' );
Podemos forzar a que cualquier usuario que haga login en nuestro WordPress se conecte mediante el protocolo HTTPS. De este modo todos los datos enviados entre el usuario y el sitio web estarán encriptados mediante SSL. Es necesario añadir en wp-config.php la siguiente línea:
define( 'FORCE_SSL_LOGIN', true );
Por supuesto, para que esto funcione, es necesario que el servidor esté configurado para poder funcionar con SSL. El mejor modo de asegurarse es probando https://www.misitio.com. Si funciona tenemos SSL disponible. En caso contrario tendremos que contactar con la empresa de hosting.
Podemos también forzar a que todas las páginas de la administración, las que se encuentran bajo /wp-admin, utilicen también el protocolo HTTPS. Se activa esta opción añadiendo en el wp-config.php la siguiente opción:
define( 'FORCE_SSL_ADMIN', true );
Al igual que en punto anterior, toda la información entre la administración y el sitio web pasará encriptada, aunque esto puede resultar en una cierta ralentización. Recordad que el sitio debe de tener correctamente configurado SSL para que esto funcione.
"Estoy buscando un [tipo de entrada de blog] que involucre a mi [persona ideal de…
Cuando tenemos una web siempre deseamos que aparezca en las primeras posiciones por determinadas palabras…
Una estrategia de posicionamiento en buscadores o SEO ha de tener en cuenta decenas de…
Los sitios web son aplicaciones cada vez más complejas y en lo que hay que…
En este artículo vamos a ver unos sencillos casos de análisis con datos obtenidos de…
R dispone de multitud de paquetes o bibliotecas que nos facilitan la consulta a distintas…