WordPress
Asegure su instalación
Buscar..
Observaciones
Los sitios web de WordPress son frecuentemente hackeados. Este tema es para técnicas y prácticas que aumentan la seguridad de su instalación de WordPress más allá de lo que se logra en una instalación básica.
Además de este tema, otro buen lugar para leer acerca de cómo asegurar una instalación de WordPress es la página del Codex de WordPress de Hardening .
Deshabilitar el editor de archivos
El editor de archivos que viene con WordPress es un riesgo de seguridad. Si un atacante obtiene acceso de administrador a su sitio web de WordPress, podrá insertar fácilmente código malicioso en los archivos de temas y complementos. También es un riesgo para los clientes que no saben lo que están haciendo. Una vez colocados dos puntos en el editor de archivos, se puede romper un sitio y hacerlo inaccesible desde el navegador.
En su archivo wp-config.php
WordPress, deshabilite el editor de archivos agregando la siguiente línea de código.
define( 'DISALLOW_FILE_EDIT', true );
Esa línea tendrá el efecto deseado cuando se agregue también al archivo functions.php
su tema, pero es mejor agregarlo a wp-config.php
.
Si está utilizando WordPress CLI para instalar WordPress, puede usar el siguiente comando para crear un archivo wp-config.php
con la edición de archivos deshabilitada.
/* declare variables beforehand or substitute strings in */
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU --extra-php <<PHP
define( 'DISALLOW_FILE_EDIT', true );
PHP
Este método es útil si instala WordPress con una secuencia de comandos.
Mueve wp-config.php
La información más confidencial de una instalación de WordPress se almacena en el archivo wp-config.php
. Si un pirata informático obtiene acceso a este archivo, tendrá el control total de su sitio web.
Por defecto, wp-config.php
se almacena en la carpeta de instalación de WordPress. Para hacer que este archivo sea más difícil de robar, puede sacarlo de la carpeta accesible desde la web. Si lo mueve solo una carpeta arriba, WordPress lo encontrará automáticamente. Si mueve wp-config.php
a una ubicación diferente, cree un archivo vacío llamado wp-config.php
en la carpeta de instalación de WordPress. Luego agregue lo siguiente:
define('ABSPATH', dirname(__FILE__) . '/');
// '../../wp-config.php' defines location two folders above installation folder.
// Substitute with actual location of wp-config.php file as necessary.
require_once(ABSPATH . '../../wp-config.php');
Es posible que deba hacer php
ejecutable en la carpeta donde coloca wp-config.php. Debe hacer php ejecutable en la menor cantidad de carpetas posible. Un buen sistema coloca la instalación de WordPress en /path/to/wordpress/install/
y la configuración en /path/to/wordpress/config
. Asegúrate de que la carpeta de configuración no sea accesible desde la web y no coloques ninguna otra información confidencial que se coloque en /path/to/
o superior en la jerarquía de carpetas. En ese caso, escribiría una línea similar a la siguiente en su php.ini
:
open_basedir = "/path/to/wordpress/install/;/path/to/wordpress/config"
Esta técnica es controvertida y algunas personas no creen que mejore la seguridad. Se puede leer una amplia discusión sobre el tema en esta pregunta de WordPress StackExchange .
Establecer un prefijo personalizado para las tablas de WordPress
Cuando instala WordPress en su servidor, la secuencia de comandos de instalación colocará un prefijo delante de todos los nombres de las tablas de WordPress MySQL. Este prefijo se establece en 'wp_' por defecto. La tabla de publicaciones de WordPress se llamará wp_posts
por ejemplo. Al cambiar el prefijo de la tabla, puede crear cierta seguridad por oscuridad. De esta manera, cuando un pirata informático intente ataques de inyección de SQL, tendrá que adivinar el prefijo de su tabla en lugar de simplemente usar 'wp_'. Puedes configurar este prefijo para que sea lo que quieras.
Establecer Prefijo en Nueva Instalación de WordPress
Si utiliza la famosa instalación de 5 minutos, cambie el prefijo en el campo durante la instalación.
Si realiza la instalación a través de la CLI de WordPress use el siguiente comando:
// set other variables above, or substitute your strings in.
WP_DBPREFIX=foo
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU
Cambiar prefijo en una instalación existente
Cambiar el prefijo es un poco más difícil. Primero use un programa FTP como FileZilla para editar el archivo wp-config.php
. Cambie la entrada $table_prefix = 'wp_';
a $table_prefix = 'foo_';
sustituyendo 'foo' por su prefijo deseado.
A continuación tendremos que editar la base de datos. Si tiene acceso a phpMyAdmin, inicie sesión y haga lo siguiente:
- Seleccione la base de datos de WordPress
- Seleccione todas las tablas y en el menú desplegable seleccione reemplazar el prefijo de la tabla.
- En "De" escriba 'wp_'. En "Para" escriba su prefijo, 'foo_' en este ejemplo y presione "Enviar".
- Las tablas ahora deberían verse así:
Si no puede usar phpMyAdmin, use el siguiente comando MySQL:
RENAME table `wp_comments` TO `foo_comments`
Tendrá que ejecutar ese comando para cada tabla, sustituyendo 'comentarios' por los otros nombres de tabla.
A continuación necesitamos cambiar algunas entradas en algunas tablas. Ejecute esta consulta en la tabla 'foo_options'
SELECT * FROM foo_options WHERE option_name LIKE '%user_roles%'
Debe aparecer una entrada con option_name de 'wp_user_roles'. En esa entrada, cambie la entrada ' wp_user_roles
' de wp_user_roles
a foo_user_roles
.
Luego abre la tabla 'foo_usermeta' y encuentra cada entrada con 'wp_' en la parte delantera. y cambiarlo a 'foo_'. La cantidad de entradas que debe cambiar dependerá de cuántos usuarios tenga.
Eso debería ser todo lo que necesita para cambiar el prefijo en una instalación existente