Por framework
Seguridad de WordPress — una referencia de endurecimiento para producción
Referencia de endurecimiento de WordPress en producción: lista de verificación por prioridad, actualizaciones, gestión de plugins/temas, 2FA de administrador, exposición reducida, wp-config y backups. Sin pasos de ataque.
Para: cualquiera que gestione un sitio WordPress. Aquí no hay pasos de ataque — esta es una referencia de trabajo para el endurecimiento: una lista de verificación ordenada por prioridad, guía por área y autoverificación. Para el panorama entre frameworks, consulta el centro de seguridad por framework.
Lista de verificación de endurecimiento ordenada por prioridad
Haz esta tabla de arriba hacia abajo. P0 es la máxima prioridad, P1 es la fuente más frecuente de incidentes, P2 es la higiene operativa continua.
P0 ── Requisito previo (haz esto primero)
Actualizaciones automáticas / eliminar complementos y temas no usados / administrador fuerte + 2FA
P1 ── Principal fuente de incidentes
Minimizar complementos / reducir la exposición del panel / copias de seguridad recuperables
P2 ── Higiene operativa
wp-config y secretos / permisos de archivos / HTTPS, cabeceras, actualidad de PHP/dependencias
| Prioridad | Control | Detalles (WordPress) |
|---|---|---|
| P0 | Actualizaciones automáticas | Habilita las auto-actualizaciones del núcleo, complementos y temas. Haz copia de seguridad antes de actualizaciones mayores |
| P0 | Elimina lo no usado | Elimina los complementos/temas no usados, no solo los desactives (los archivos que quedan siguen siendo un objetivo) |
| P0 | Administrador fuerte + 2FA | Contraseña fuerte + dos factores. Evita el nombre de usuario admin; roles de mínimo privilegio |
| P1 | Minimizar complementos | Evalúa la frecuencia de actualización, la adopción y los CVE conocidos antes de instalar. Mantén el número bajo |
| P1 | Proteger el inicio de sesión | Límites de intentos de inicio de sesión. Restringe la exposición de wp-admin/wp-login.php |
| P1 | Reducir la exposición | Restringe xmlrpc.php si no se usa. Suprime la enumeración de usuarios de la REST API |
| P1 | Copias de seguridad | Copias de seguridad recuperables sin conexión/separadas + pruebas de restauración + detección de manipulación |
| P2 | wp-config y secretos | Configura claves/sales de autenticación, protege wp-config.php, desactiva la pantalla de depuración en producción |
| P2 | Permisos de archivos | ~644 archivos / 755 directorios. Prohíbe la ejecución de PHP en el directorio de subidas |
| P2 | HTTPS/cabeceras/actualizaciones | Fuerza HTTPS, HSTS, etc. Mantén PHP/BD en versiones soportadas |
1. Actualizaciones (la principal defensa)
La mayoría de los ataques a WordPress son herramientas automatizadas que explotan a escala una vulnerabilidad conocida publicada (CVE). Así que la velocidad de actualización es tu mayor defensa.
- Habilita las actualizaciones automáticas del núcleo, los complementos y los temas — cierra los agujeros publicados antes de que sean explotados.
- Para sitios importantes, verifica las actualizaciones mayores en un entorno de preproducción (staging) y haz copia de seguridad antes de actualizar.
- Una actualización omitida es una entrada abierta para los ataques automatizados. No lo dejes "para después".
2. Complementos y temas (superficie de ataque)
Las vulnerabilidades del código de terceros son la mayor entrada. La clave es mantener el número bajo y no dejarlos nunca desatendidos.
- Para lo no usado, elimínalo en lugar de desactivarlo (los archivos desactivados pueden seguir siendo un objetivo).
- Antes de instalar, comprueba la frecuencia de actualización, la adopción, la fecha de última actualización y los CVE conocidos. Evita los abandonados.
- Puedes comprobar los CVE de los complementos con la búsqueda de CVE/KEV. Menos extensiones significa menos responsabilidad de actualización y menos superficie de ataque.
3. Cuentas de administrador y autenticación
La mayoría de las tomas de control son fuerza bruta contra cuentas de administrador débiles/reutilizadas, o reutilización de contraseñas filtradas.
Común (peligroso)
- nombre de usuario
admin+ contraseña débil + sin 2FA - todos son administradores (sin separación de roles)
- intentos de inicio de sesión ilimitados
wp-adminaccesible desde cualquier lugar
Correcto
- contraseña fuerte + 2FA, un nombre de usuario distinto de
admin - roles de mínimo privilegio (usa editor/autor según corresponda)
- límites de intentos de inicio de sesión (frena la fuerza bruta)
- donde sea posible, restringe desde dónde se puede acceder a
wp-admin/wp-login.php
Para elegir 2FA consulta qué es 2FA; para la ruta que apunta a los administradores consulta qué es el phishing.
4. Reducir la exposición (superficie del panel y divulgación)
Los atacantes buscan primero una "entrada utilizable". Recorta las funciones no usadas y la divulgación innecesaria.
- Añade límites de intentos de inicio de sesión para reducir la eficacia de la fuerza bruta.
- Restringe
xmlrpc.phpsi no se usa (puede ser una entrada para amplificación de fuerza bruta y peticiones de alto volumen). - Suprime la enumeración de usuarios de la REST API (evita exponer los nombres de administrador vía
?author=, etc.). - Desactiva el listado de directorios y reduce la divulgación innecesaria de versiones.
- Desactiva la edición de archivos desde el panel (
DISALLOW_FILE_EDIT) para dificultar la manipulación tras una intrusión.
5. wp-config y secretos (P2)
- Configura las claves/sales de autenticación únicas y protege
wp-config.phpcon permisos apropiados (nunca legible por todos). - Mantén secretos como las credenciales de la BD fuera de la superficie pública. No dejes copias de seguridad ni exportaciones en un directorio público (→ mantén los secretos fuera de los directorios públicos).
- En producción, desactiva la pantalla de depuración (
WP_DEBUG_DISPLAYdesactivado). No filtres detalles internos vía errores.
6. Archivos y subidas (P2)
- Permisos de archivos de aproximadamente 644 archivos / 755 directorios, y más estrictos para
wp-config.php. Nunca dejes nada escribible por todos. - No permitas la ejecución de PHP en el directorio de subidas (defensa contra web-shells). Valida el tipo y el tamaño de las subidas.
- Usa detección de manipulación (monitorización de cambios de archivos) para detectar temprano los cambios tras una intrusión.
7. HTTPS, cabeceras, copias de seguridad (P2)
- Fuerza HTTPS + HSTS. Resuelve el contenido mixto.
- Añade cabeceras de seguridad (comprueba tu propio sitio con el verificador de cabeceras de seguridad).
- Mantén copias de seguridad sin conexión/inmutables + pruebas de restauración para poder recuperarte (→ fundamentos de copias de seguridad). La última línea contra el ransomware y el defacement.
8. Hosting y dependencias (P1–P2)
- Mantén PHP y la base de datos en versiones soportadas. No dejes versiones en fin de vida (EOL) en su lugar.
- Conoce el estado de parcheo de tu hosting (en hosting compartido, eso incluye la respuesta del proveedor).
- Un WAF es un complemento — refuerza primero la base (actualizaciones, minimización, autenticación, copias de seguridad).
Verifica: ¿está tu WordPress realmente endurecido?
Construirlo no es el final — está hecho solo una vez que lo has comprobado. Estas son autoverificaciones defensivas contra tu propio sitio.
Los secretos y la configuración no están expuestos
/wp-config.php no devuelve su contenido, y que las copias de seguridad (.zip/.sql) o los archivos tipo .env no se pueden obtener por URL.Los nombres de administrador y las versiones no se filtran
?author=1 y similares no exponen un nombre de usuario de administrador, y que el listado de directorios está desactivado.La protección de inicio de sesión y 2FA funcionan
admin residual.Actualizaciones, copias de seguridad, cabeceras
La visión de este sitio: gestiona 'las extensiones y el descuido', no el núcleo
Lo que funciona para WordPress no es una configuración vistosa, sino la disciplina operativa de "no añadas extensiones en exceso, no las dejes desatendidas". Los complementos son cómodos, pero cada uno añade una responsabilidad de seguir actualizando. El centro de gravedad es trabajar la tabla de arriba de arriba hacia abajo — automatiza las actualizaciones, mantén los complementos al mínimo y defiende con autenticación fuerte y copias de seguridad recuperables. Parece específico de WordPress, pero en realidad es la base universal (actualidad de las dependencias, superficie pública mínima, autenticación, recuperación) aplicada.
Lecturas siguientes
- Centro: seguridad por framework · seguridad de Laravel
- Práctica: el manual de respuesta a vulnerabilidades · fundamentos de copias de seguridad
- Secretos/autenticación: mantén los secretos fuera de los directorios públicos · qué es 2FA · qué es el phishing
- Herramientas: verificador de cabeceras de seguridad · búsqueda de CVE/KEV
FAQ
Q¿Qué debo hacer primero para asegurar WordPress?
Los tres elementos P0: (1) habilita las actualizaciones automáticas del núcleo, los complementos y los temas para que las vulnerabilidades conocidas publicadas (CVE) se cierren antes de ser explotadas; (2) elimina los complementos/temas no usados (no solo los desactives) para reducir la superficie de ataque; (3) protege las cuentas de administrador con una contraseña fuerte y autenticación de dos factores (2FA), y evita el nombre de usuario admin. Estos tres por sí solos detienen la mayoría de los ataques automatizados. Después, reduce la exposición del panel y configura copias de seguridad.
Q¿Cuántos complementos son demasiados?
La regla es 'solo el mínimo que necesites'. Cada complemento añade superficie de ataque y una 'responsabilidad de seguir actualizando'. Antes de instalar, comprueba la frecuencia de actualización, la adopción, la fecha de última actualización y las vulnerabilidades conocidas; y para lo no usado, elimínalo en lugar de desactivarlo (los archivos desactivados pueden seguir siendo un objetivo de vulnerabilidad). Lo mismo aplica a los temas.
Q¿Debo desactivar xmlrpc.php?
Si no lo usas, se recomienda restringirlo o desactivarlo. xmlrpc.php sirve para la publicación remota y los pingbacks, pero también puede ser una entrada para amplificación de fuerza bruta y peticiones de alto volumen. Si sí usas funciones que lo necesitan (algunas integraciones de aplicaciones), limítalo a los métodos que necesitas o protégelo con límites de tasa/IP. Comprueba primero si realmente lo usas.
Q¿Un complemento de seguridad me hace seguro?
Un complemento de seguridad ayuda pero no es una bala de plata. Añadir uno mientras falta la base (actualizaciones automáticas, complementos mínimos, autenticación de administrador fuerte, copias de seguridad, exposición del panel reducida) no cerrará los agujeros. Trabaja primero la lista de verificación de esta página, luego usa un complemento para complementar cosas como los límites de intentos de inicio de sesión y la detección de manipulación.
Q¿Cuál es el mínimo indispensable?
(1) actualizaciones automáticas, (2) eliminar complementos/temas no usados, (3) contraseña fuerte + 2FA para administradores, (4) límites de intentos de inicio de sesión y exposición del panel reducida, (5) copias de seguridad sin conexión recuperables + detección de manipulación. Estos cinco detienen la mayoría de los ataques automatizados. Consulta la lista de verificación y las secciones anteriores para más detalle.