Lista de refuerzo de WordPress con correcciones para copiar y pegar
Lo que más importa son las actualizaciones. Después, estos pequeños cambios cierran las puertas que los atacantes prueban primero.
El código y la configuración se mantienen en inglés.
1. Mantén todo actualizado
Activa las actualizaciones automáticas de plugins y temas (Plugins → Activar actualizaciones automáticas). Elimina lo que no uses: los plugins desactivados también se pueden explotar.
2. Desactiva el editor de archivos integrado
Añade esto a wp-config.php, encima de /* That’s all, stop editing! */:
define( 'DISALLOW_FILE_EDIT', true );3. Bloquea XML-RPC (si no lo usas)
Jetpack y algunas apps móviles usan XML-RPC. Si tú no, bloquéalo en el servidor:
<Files "xmlrpc.php">
Require all denied
</Files>location = /xmlrpc.php { deny all; }4. Deja de mostrar nombres de usuario
Oculta la lista de usuarios de la API REST a los visitantes sin sesión iniciada (como plugin must-use en wp-content/mu-plugins/):
<?php
add_filter( 'rest_endpoints', function ( $endpoints ) {
if ( ! is_user_logged_in() ) {
unset( $endpoints['/wp/v2/users'], $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
}
return $endpoints;
} );Comprueba también que los archivos de autor (/?author=1) no revelan nombres de inicio de sesión. Configura el “Mostrar este nombre públicamente” de cada usuario con algo distinto del nombre de acceso.
5. Nada de PHP en uploads
La carpeta uploads solo debería contener archivos multimedia. Pon esto en wp-content/uploads/.htaccess:
<FilesMatch "\.(php|phtml|phar)$">
Require all denied
</FilesMatch>location ~* ^/wp-content/uploads/.*\.(php|phtml|phar)$ { deny all; }6. Protege wp-config.php y los accesos
- Haz que
wp-config.phpsolo lo pueda leer su propietario (permisos600o640, según tu hosting). - No dejes nunca copias
wp-config.php.bak,.oldo.zipen la raíz web. - Usa autenticación de dos factores y limita los intentos de inicio de sesión de las cuentas de administrador.
- Mantén
WP_DEBUG_DISPLAYdesactivado en producción, para que los errores nunca se muestren en pantalla.