Ir al contenido

Hardening

La pestaña Hardening te permite activar o desactivar protecciones adicionales que endurecen tu sitio WordPress. Cada opción es un interruptor que puedes encender o apagar según las necesidades del sitio, y los cambios se aplican al guardar.

Interfaz de Hardening

Desactiva el endpoint xmlrpc.php. XML-RPC es uno de los puntos de entrada más atacados de WordPress y la mayoría de sitios ya no lo necesita.

Cambia la dirección de tu página de inicio de sesión. En vez de entrar por /wp-login.php, que todos los bots conocen, entrarás por un slug personalizado que eliges en el campo Login slug (el slug por defecto es vulnity-login). La pantalla muestra la URL de login resultante para que la guardes.

Hace que la API REST de WordPress solo responda a usuarios con sesión iniciada; las peticiones sin autenticar reciben un error de autenticación. Para no romper integraciones habituales, un conjunto de rutas públicas sigue abierto — incluidos los endpoints propios de Vulnity y rutas usadas por WooCommerce, plugins de formularios, plugins SEO, Jetpack, Elementor y otras herramientas populares. El índice REST que revela qué plugins hay instalados también queda bloqueado.

Impide que un atacante descubra nombres de usuario mediante URLs como ?author=1 o las páginas de archivo de autor. Para visitantes sin sesión, esas peticiones devuelven una página 404 normal en lugar de redirigir a una URL que contiene el nombre de usuario.

Bloquea la navegación directa de los directorios wp-content/plugins/, wp-content/themes/ y wp-content/uploads/, e impide que los ficheros .php dentro de uploads puedan ejecutarse desde la web. Cuando el servidor lo permite, Vulnity escribe además reglas a nivel de servidor y desactiva el listado de directorios; en hostings donde esas reglas no pueden aplicarse, la protección a nivel PHP sigue activa y el plugin muestra un aviso.

Los directorios propios de almacenamiento y logs de Vulnity están protegidos siempre, incluso con esta opción desactivada.

Elimina la versión de WordPress de la vista pública: el meta tag generator queda vacío y se retira el script de emojis del front — cuyas URLs revelan la versión exacta de WordPress a las herramientas de fingerprinting. El comportamiento en el administrador no se ve afectado.

Ocultar enumeración de usuarios en el login

Sección titulada «Ocultar enumeración de usuarios en el login»

Sustituye los mensajes de error del login que revelan si un usuario existe (“usuario no válido” frente a “contraseña incorrecta”) por un único mensaje genérico: “El usuario o la contraseña que has introducido no son correctos.” Los errores que el plugin no reconoce — como los de plugins de doble factor o los avisos de bloqueo — se dejan intactos.

Tras un número configurable de intentos fallidos desde la misma IP (Maximum attempts), esa IP queda bloqueada temporalmente para iniciar sesión durante los minutos que configures (Lockout minutes). Antes del bloqueo, el formulario de login avisa de cuántos intentos quedan; un login correcto reinicia el contador.

No todas las opciones encajan en todos los sitios. Un orden seguro para la mayoría:

  1. Limitar intentos de login, Bloquear enumeración de usuarios y Ocultar enumeración de usuarios en el login — bajo riesgo y gran valor frente a ataques automatizados; seguros de activar en cualquier sitio.
  2. Ocultar versión de WordPress y Proteger rutas comunes — reducen lo que un atacante puede averiguar del sitio sin afectar a los visitantes.
  3. Deshabilitar XML-RPC — actívalo salvo que uses la app móvil de WordPress, Jetpack u otra herramienta que dependa de xmlrpc.php.
  4. Renombrar URL de login — eficaz contra bots, pero guarda la nueva URL: la necesitarás para iniciar sesión.
  5. Restringir REST API — pruébalo antes, porque algunos plugins y temas dependen de endpoints REST sin autenticar.
  • Resumen de mitigación — mira cómo el bloqueo automático de IPs complementa el hardening.
  • Alertas del plugin — revisa los eventos que estas protecciones ayudan a prevenir.
  • Storage — comprueba dónde persiste su estado el firewall.