WordPress.org

Plugin Directory

Vigilante – Suite de seguridad 100% gratis: Cortafuegos, 2FA, login, cabeceras, escáner…

Vigilante – Suite de seguridad 100% gratis: Cortafuegos, 2FA, login, cabeceras, escáner…

Descripción

Seguridad Premium. Coste cero.

Vigilante ofrece características de seguridad para WordPress de calidad empresarial de forma totalmente gratuita. Sin versión premium, sin ventas cruzadas, sin características ocultas tras muros de pago.

Protege tu web con un paquete de seguridad completo: cortafuegos, identificación en dos pasos, protección contra ataques de fuerza bruta, cabeceras de seguridad, exploración de integridad de archivos, detección de plugins cerrados, detección de malware, gestión de usuarios, registro de auditoría de seguridad, modo bajo ataque, verificación de sus propios archivos y mucho más.

Una vez activado, Vigilante aplica inmediatamente reglas de cortafuegos contra ataques habituales (inyección SQL, XSS, inclusión de archivos), cabeceras de seguridad, supervisión de intentos de acceso, bloqueo de XML-RPC, ocultación de la versión de WordPress y protección de archivos sensibles (.htaccess, wp-config.php).

Preajustes de seguridad con un clic

Elige un preajuste y protégete al instante:

Estándar – Seguridad equilibrada adecuada para la mayoría de los sitios web. Activa todos los módulos con valores por defecto razonables que no interfieren con el funcionamiento normal del sitio.

Máxima seguridad – Ajustes más estrictos para sitios de alta seguridad. Límites de tráfico más estrictos, reglas CSP más rigurosas, avisos de administración obligatorios. Algunas configuraciones pueden requerir cierta adaptación.

Siempre puedes personalizar los ajustes individuales después de aplicar un preajuste.

Modo «Bajo ataque»

¿Tu sitio web está siendo objeto de un ataque activo? Activa el modo «Bajo ataque» con un solo clic y detén el tráfico malintencionado al instante:

  • Desafío JavaScript: todos los visitantes deben pasar una verificación automática del navegador antes de acceder a tu sitio. Los navegadores auténticos lo resuelven en segundos, mientras que los bots quedan bloqueados por completo.
  • Límite de tráfico agresivo: se limitan las solicitudes a 30 por minuto, con bloqueos de 15 minutos para los infractores.
  • Restricción de métodos HTTP: solo se permiten GET, POST y HEAD. Se bloquean PUT, DELETE, PATCH, OPTIONS y TRACE.
  • Bloqueo de agentes de usuario vacíos: se rechazan las solicitudes sin cabeceras de agente de usuario.
  • Bloqueo total de XML-RPC durante el ataque
  • Restricción de la API REST: solo los usuarios identificados pueden acceder a la API REST.
  • Desactivación automática: El modo se apaga después de 4 horas para que nunca se te olvide que está activo
  • Avisos por correo electrónico cuando se active y desactive el modo
  • Cookies firmadas con HMAC: Los visitantes verificados reciben una cookie firmada para que solo vean el desafío una vez.

El modo «Bajo ataque» funciona de manera independiente de la configuración de tus preajustes. Tus ajustes habituales se conservan, y se restauran cuando se desactive este modo.

Identificación en dos pasos (2FA)

Añade un segundo paso de verificación a tu acceso a WordPress:

  • Aplicación de verificación (TOTP) – Google Authenticator, Authy, Microsoft Authenticator o cualquier aplicación compatible con TOTP
  • Códigos por correo electrónico – Códigos de verificación únicos de 6 dígitos enviados por correo electrónico
  • Configuración del código QR directamente en los perfiles de usuario
  • 10 códigos de recuperación para acceso de emergencia si pierdes tu dispositivo
  • Periodo de gracia configurable para que los usuarios configuren su aplicación de verificación
  • Dispositivos de confianza – Permite a los usuarios omitir la identificación en dos pasos en dispositivos reconocidos durante 30 días
  • Forzado basado en perfiles – requiere 2FA a administradores, editores o cualquier perfil
  • Excluir a usuarios específicos de los requisitos de 2FA
  • Herramienta de administración para restablecer el TOTP de los usuarios que hayan perdido su verificación
  • Caducidad del código, límite de intentos y nombre del remitente del correo electrónico configurables
  • Correos electrónicos de aviso a los usuarios cuando se activa el 2FA o se cambia de método

Protección con cortafuegos

Bloquea peticiones malintencionadas antes de que lleguen a WordPress:

  • Bloqueo de inyecciones SQL
  • Evitar ataques XSS (Cross-Site Scripting)
  • Protección frente a inclusión de archivos (LFI/RFI)
  • Bloqueo de exploración de directorios
  • Filtrado de cadenas de consulta malintencionadas (recoge patrones sospechosos genéricos que los bloqueadores específicos no detectan)
  • Detección y bloqueo de bots sospechosos
  • Bloquea peticiones con agente de usuario vacío
  • Limitación de peticiones para evitar ataques DDoS y de fuerza bruta, con bloqueos progresivos opcinales
  • Gestión de lista blanca y lista negra de IPs (IPv4 e IPv6, con rangos CIDR y comodines)
  • Lista blanca y lista negra de User-Agent con coincidencia parcial.
  • Control de detección de IP de visitantes: Lee la IP real directamente desde la conexión (valor por defecto a prueba de suplantaciones) o desde una cabecera de proxy cuando se está detrás de Cloudflare, un proxy inverso o un balanceador de carga, con un aviso al administrador si se detecta un proxy pero no está configurado.
  • Restricción de métodos HTTP
  • Protección de archivos del servidor mediante .htaccess: bloquea el acceso directo a wp-config.php, .htaccess, wp-includes/ y archivos sensibles (.log, .sql, .bak, debug.log, readme.html, etc.) y, opcionalmente, el acceso externo a wp-cron.php
  • Bloquea la ejecución de PHP en /uploads (uno de los métodos de ataque tipo post más habituales)
  • Desactiva la navegación de directorios

Seguridad en el acceso

Frena los intentos de acceso no autorizados:

  • Límite de intentos de inicio de sesión con umbrales configurables
  • Bloqueos progresivos – bloqueos más largos para los infractores reincidentes
  • URL de inicio de sesión personalizada – oculta wp-login.php de los bots
  • Avisos de cambio de URL de inicio de sesión a todos los usuarios del área de admnistración
  • Ocultar mensajes de error en el inicio de sesión – no reveles nombres de usuario válidos
  • Control de XML-RPC: Déjalo activo, bloquea solo los métodos de pingback (recomendado, ya que cierra la vía de propagación mientras la aplicación móvil y Jetpack siguen funcionando), o desactívalo por completo.
  • Control de contraseñas de aplicación
  • Aviso por correo electrónico cuando se bloquea una IP por superar el límite de intentos de acceso
  • Avisos por correo electrónico de inicios de sesión de admins
  • Lista blanca de IPs para ubicaciones de confianza

Seguridad de usuarios

Protección integral de las cuentas de usuarios:

  • Bloquea nombres de usuario inseguros (admin, test, root, etc.) en los nuevos registros
  • Advierte de usuarios existentes con nombres de usuario inseguros para que puedas renombrarlos o eliminarlos
  • Bloquea la búsqueda de autores — Intercepta las URLs del tipo ?author=N para que WordPress no las redirija a /author/USERNAME/ y no se filtre el slug de acceso.
  • Forzar contraseñas seguras con longitud mínima
  • Caducidad de contraseñas con intervalos configurables
  • Historial de contraseñas – evita la reutilización de contraseñas anteriores
  • Forzar restablecimiento de contraseñas – Por usuarios específicos, por perfilo o a todos los usuarios (recuperación después de un hackeo)
  • Límites de sesión – controla los inicios de sesión simultáneos por usuario
  • Gestión de sesiones – ve y cierra sesiones activas
  • Verificación por correo electrónico de los nuevos registros
  • Procedimiento de aprobación de registros – aprueba manualmente los nuevos usuarios
  • Exploración de cuentas de admin – alertas ante nuevos admins, cambios de correo electrónico, cambios de contraseña, escalado de privilegios
  • Protección del nombre a mostrar – Impide revelar públicamente el nombre de usuario con el que se accede

Cabeceras de seguridad

Consigue una calificación A de seguridad:

  • Content Security Policy (CSP) con una política por defecto compatible con WordPress y el modo Report-Only para realizar pruebas de forma segura antes de aplicarla
  • HSTS (HTTP Strict Transport Security) con includeSubdomains y opciones de precarga
  • X-Frame-Options – evita el clickjacking
  • X-Content-Type-Options – evita la detección de MIMEs
  • Referrer Policy control
  • Política de permisos (cámara, micrófono, geolocalización, pagos, USB)
  • Políticas Cross-Origin (COEP, COOP, CORP)
  • Forzado de HTTPS con corrección automática de contenido mixto
  • Ocultación de la huella digital del servidor — Neutraliza la cabeceras Server:, X-Powered-By y otras cabeceras de huella digital de las respuestas

Supervisión de integridad de archivos

Detecta plugins vulnerables y cambios no autorizados en tus archivos:

  • El núcleo de WordPress contra las sumas de comprobación oficiales, más los archivos añadidos a wp-admin y wp-includes
  • Los plugins contra las sumas de comprobación de WordPress.org, los temas contra su paquete de WordPress.org
  • Todo lo que no tiene copia oficial (otros plugins y temas, plugins must-use, drop-ins, el resto de wp-content) se busca en busca de código oculto
  • Los archivos de configuración críticos (wp-config.php, .htaccess) se supervisan comparándolos con la versión de referencia, detecta inyecciones de código incluso en archivos sin suma de comprobación oficial
  • Detección de plugins cerrados y eliminados: una comprobación diaria contra WordPress.org marca cualquier plugin instalado que haya sido cerrado o eliminado discretamente, con opción de ignorar por plugin
  • Vista de diferencias lína a línea de los cambios, con un flujo de trabajo de aprobación por archivo
  • Detección de archivos adicionales en plugins y temas (archivos que no se encuentran en la distribución original)
  • Análisis de uploads en busca de PHP, dobles extensiones y archivos .htaccess
  • Qué suele ser cada hallazgo y qué hacer al respecto
  • Exploración del directorio raíz en busca de archivos PHP que no son de la instalación (una forma común de ataque)
  • Detección de ofuscación por concatenación de cadenas
  • Niveles de aviso configurables y lista de ignorados para descartar archivos conocidos
  • Rutas y extensiones de archivo excluidas
  • Exploraciones automáticas programadas (a diario, semanalmente)
  • Alertas por correo electrónico con formato HTML que incluyen secciones con el nivel de gravedad, entre las que se encuentra una sección específica para los plugins cerrados

Autoprotección

Un plugin de seguridad manipulado es peor que no tener ninguno, porque sigue indicando que todo va bien. Vigilant verifica sus propios archivos comparándolos con las sumas de comprobación que publica WordPress.org, un manifiesto SHA-256 incluido con el plugin y una huella digital de dicho manifiesto almacenada en la base de datos:

  • Al inicio de cada exploración de integridad, justo después de cada actualización y cuando la versión en disco cambia fuera del actualizador de WordPress
  • Cuando hay archivos modificados, ausentes y añadidos, enlaces simbólicos o un manifiesto reemplazado o borrado, se informa por correo electrónico con los ajustes por defecto
  • Sus propias tareas programadas se vigilan y se vuelven a programar si algo las elimina
  • Su propio bloque en «Integridad de archivos» y un análisis en la «Comprobación de seguridad», con lo que significa cada hallazgo y cómo solucionarlo, y sin forma de desactivarlo
  • Reparación con un solo clic que reinstala Vigilant desde WordPress.org, conservando tus ajustes, tablas y registros.

Detecta manipulaciones, no vulnerabilidades en el propio Vigilant. El archivo SECURITY.md explica qué cubre, qué no cubre y cómo verificar tu instalación desde fuera del servidor.

Auditoría de seguridad

Haz seguimiento de todo lo que pasa en tu sitio:

  • Intentos de inicio de sesión correctos y fallidos
  • Eventos de la identificación en dos pasos
  • Cambios en cuentas de usuarios (creación, borrado, cambios de perfil)
  • Modificaciones de contenido (entradas, páginas)
  • Activaciones/desactivaciones de plugins y temas
  • Eventos de seguridad y amenazas bloqueadas
  • Seguimiento y filtrado de métodos de solicitud HTTP (GET, POST, PUT, DELETE).
  • Ventana emergente con detalles de registro mejorados, con secciones agrupadas y acciones rápidas.
  • Añade con un solo clic una IP o un User-Agent a la lista blanca/lista negra del cortafuegos desde las entradas del registro.
  • Enlaces de búsqueda directa de IP a AbuseIPDB.
  • Período de retención configurable, exportación a CSV y filtrado por tipo de evento, gravedad, método de solicitud o fecha

Alertas de auditoría – Recibe un correo electrónico cuando el registro de auditoría señale algo que merezca tu atención. Están desactivadas por defecto y se configuran en la auditoría de seguridad:

  • Alertas inmediatas cuando se registra un evento grave, por gravedad mínima (un nuevo administrador, un plugin cerrado o un aumento de privilegios se registran como críticos)
  • Alertas con umbral cuando se produce un pico en una categoría (bloqueos del cortafuegos, errores de acceso, eventos de usuarios, plugins, integridad de archivos, seguridad, sistema y contenido) durante un intervalo de 30 minutos, 1, 6 o 24 horas, contando únicamente los eventos de advertencia y críticos, para que la actividad rutinaria nunca las active
  • Un intervalo de espera antirrepetición evita que una avalancha de eventos se convierta en un sinfín de avisos que inunden tu bandeja de entrada
  • Las alertas activas aparecen en «Ajustes y herramientas», el escritorio, la puntuación de configuración y la comprobación de seguridad
  • Botón «Enviar correo electrónico de prueba» para confirmar el envío

Comprobación de seguridad

Auditoría de seguridad bajo demanda integrada en el escritorio. Sin servicios externos, sin cuentas, sin claves API – Todo se ejecuta en tu servidor:

  • Más de 50 comprobaciones en 6 categorías: SSL/TLS, cabeceras HTTP, exposición de WordPress, acceso e identificación archivos sensibles y comprobaciones internas
  • Puntuación de 0 a 100 con calificación de A a E, además de un desglose por categorías y detalles explicativos para cada comprobación
  • 16 comprobaciones internas exclusivas que no se pueden realizar desde el exterior: estado de fin de vida útil de PHP, actualizaciones pendientes, plugins inactivos, plugins cerrados o eliminados, autoprotección de Vigilante, permisos de archivos, detección de salts por defecto, prefijo de tabla wp_, nombre de usuario admin, administradores sin 2FA, estado de los módulos, errores de auditoría recientes, resultado de la última exploración de integridad de archivos y si están configuradas las alertas de auditoría
  • Verificación de reputación basada únicamente en DNS con Spamhaus ZEN, Barracuda BRBL y SpamCop SCBL (informativa — Los listados aparecen marcados, pero no afectan a la puntuación)
  • Exploración en dos fases: Las comprobaciones rápidas locales aparecen en menos de un segundo, las comprobaciones remotas aparecen a medida que se completan
  • Exploración semanal automática con alerta por correo electrónico opcional si la puntuación baja en 10 o más puntos o si una nueva comprobación crítica empieza a dar fallos
  • Historial de 30 exploraciones con gráfico de tendencia y puntos de referencia
  • Enlace de «Ir al ajuste» que se activa cada vez que falla una comprobación, y que lleva directamente al campo concreto de Vigilante que lo soluciona
  • Diagnóstico inteligente de cabeceras que informa «configurado pero no se está sirviendo» cuando una caché o una CDN anula tus cabeceras

Refuerzo de WordPress

Protección multinivel en WordPress — Administración, contenido, cabecera, feeds y base de datos:

  • Protege la administración: Desactiva el editor integrado de plugins y temas, impide instalaciones y actualizaciones desde el área de administración y fuerza HTTPS en esta área. Compatible con cualquier configuración de alojamiento, respetando los valores ya establecidos y sin sustituirlos nunca
  • Desactiva el cron interno de WordPress para el recuento de visitas cuando ya tengas configurada una tarea cron real en el servidor
  • Aviso en el escritorio cuando el modo de depuración sigue activado en producción, para que los mensajes de error nunca lleguen a los visitantes
  • Oculta tu versión de WordPress en todos los lugares donde pueda aparecer: encabezado HTML, feeds RSS y Atom y, si quieres, en todas las URL de scripts y hojas de estilo de la parte visible del sitio (quitando solo la versión de WordPress, sin afectar a la gestión de caché de los plugins y temas)
  • Eliminación diaria automática de archivos readme.html, license.txt y licencia.txt del directorio raíz de WordPress, los cuales podrían exponer tu versión
  • Limpieza del encabezado HTML — Elimina el enlace RSD, el manifest de Windows Live Writer, la cabecera de enlaces cortos y el enlace de descubrimiento de la API REST
  • Refuerzo de la base de datos — Comprobación de seguridad del prefijo de las tablas por defecto wp_, y herramienta de renombrado con un solo clic, con copia de seguridad completa antes del cambio
  • Seguridad en los comentarios — Campo señuelo contra bots de spam, moderación obligatoria para todos los comentarios nuevos, cierre de comentarios en entradas antiguas, desactivación de pingbacks y trackbacks
  • Gestión de feeds — Desactivar por completo los feeds RSS y Atom, o desactivarlos solo cuando el sitio no tenga contenido publicado

Seguridad de la API REST

Controla el acceso a la API en tu sitio:

  • Tres modos de acceso: público (comportamiento por defecto de WordPress), solo para usuarios identificados (cierra el acceso a la API a visitantes anónimos) o selectivo (listas personalizadas de usuarios permitidos y bloqueados)
  • Bloquea la enumeración de usuarios a traves de /wp-json/wp/v2/users
  • Protege cualquier lista de variables sensibles contra accesos anónimos
  • Opciones de compatibilidad por plugin para que el modo identificado no afecte a la parte pública de la web: WooCommerce, Contact Form 7, Gravity Forms, WPForms, Elementor, Jetpack. Las variables de oEmbed y la salud del sitio siguen estando disponibles por defecto

Herramientas de seguridad

Utilidades incluidas:

  • Copia de seguridad de la base de datos: descarga una copia de seguridad completa o parcial de la base de datos en formato ZIP con selección de tablas.
  • Cambio del prefijo de la base de datos: cambie el prefijo por defecto wp_ por un prefijo aleatorio seguro.
  • Ajustes de exportación/importación – Transfiere tu configuración entre sitios
  • Copia de seguridad de la configuración: descarga wp-config.php, .htaccess y robots.txt como un ZIP
  • Restablecer valores por defecto – Empieza desde cero con un solo clic

Seguro por principios

Vigilante valida .htaccess y wp-config.php antes de escribir en ellos, y no guarda ninguna copia de ellos, porque contienen la contraseña de tu base de datos: descarga primero una copia de seguridad desde «Ajustes y herramientas».

Desactivarlo elimina sus bloques de ambos archivos y recupera las líneas que había comentado. Desactiva el modo bajo ataque antes de desactivarlo.

Vigilant también revisa sus propios archivos y te explica cómo puedes comprobarlos tú mismo: cada versión incluye un archivo MANIFEST.sha256 que se puede verificar con sha256sum, y WordPress.org publica las mismas sumas de comprobación para que puedas compararlas.

¿Por qué usar Vigilante?

La mayoría de los plugins de seguridad para WordPress reservan sus mejores funcionalidades para los planes de pago. Vigilante te ofrece todo desde el principio — Sin planes premium, sin restricciones de características, sin ventas dirigidas. Cortafuegos, identificación en dos pasos con aplicación de verificación, cabeceras de seguridad, integridad de archivos, registro de auditoría, comprobación de seguridad con alertas semanales en caso de bajada y mucho más. Todo gratis, actualizándose constantemente y siguiendo los estándares de programación de WordPress.

Disponemos de una comparación detallada de las funcionalidades de Vigilante respecto a otros populares plugins de seguridad (Wordfence, Solid Security, AIOS, Sucuri, SG Security). Descubre qué ofrece cada uno en su versión gratuita y en qué aspectos Vigilante cubre carencias.

Ver la comparativa completa

Soporte

¿Necesitas soporte privado o un desarrollo personalizado?

¿Necesitas ayuda individualizada, resolución de problemas prioritaria o una funcionalidad, integración o adaptaciones personalizadas creadas específicamente para tu sitio? Ofrezco soporte privado y desarrollos personalizados. Solo tienes que contactarme y decirme qué necesitas.

¿Necesitas ayuda o tienes sugerencias?

¿Te gusta el plugin? ¡Déjanos un comentario de 5 estrellas y así ayudas a que lo conozcan otros!

Acerca de Ayuda WordPress

Somos especialistas en plugins de optimización de seguridad, SEO, IA y rendimiento para WordPress. Creamos herramientas que solucionan problemas reales a los propietarios de sitios WordPress manteniendo los más altos estándares de programación y requisitos de accesibilidad.

Capturas

Instalación

  1. Sube los archivos del plugin al directorio /wp-content/plugins/vigilante/, o instálalo directamente la pantalla de plugins de WordPress.
  2. Activa el plugin a través del menú ‘Plugins’ en WordPress
  3. Ve a ‘Vigilante’ en el menú de administración
  4. Aplica un preajuste de seguridad o personaliza los ajustes de cada módulo

Requisitos:

  • WordPress 6.2 o superior
  • PHP 7.4 o superior
  • Servidor Apache o LiteSpeed (para características de .htaccess)
  • Certificado SSL recomendado para HSTS

FAQ

¿Este plugin ralentizará mi sitio?

No. Vigilante está optimizado para ofrecer un rendimiento óptimo. El cortafuegos utiliza una eficiente comparación de patrones, las consultas a la base de datos se almacenan en caché con transitorios y las reglas .htaccess se ejecutan a nivel del servidor antes incluso de que se cargue PHP.

¿Qué pasa cuando activo el plugin?

Vigilante aplica sus ajustes predeterminados: todos los módulos activados, con valores equilibrados para la mayoría de los sitios. En Apache y LiteSpeed eso escribe dos bloques en .htaccess, y escribe un bloque de constantes en wp-config.php.

Si wp-config.php ya define DISALLOW_FILE_EDIT, DISALLOW_FILE_MODS, FORCE_SSL_ADMIN, FORCE_SSL_LOGIN, DISABLE_WP_CRON, WP_DEBUG, WP_DEBUG_LOG, WP_DEBUG_DISPLAY o SCRIPT_DEBUG, Vigilante comenta esa línea, la marca y establece el valor desde sus propios ajustes en «WordPress». Si dependes de una de ellas, revisa esa pestaña después de activarlo. Tus líneas vuelven cuando lo desactivas.

Vigilante no guarda ninguna copia de esos dos archivos. Si quieres una, hazla antes de activarlo.

¿Qué pasa cuando desactivo el plugin?

Vigilante elimina sus bloques de «Protección» y «Cabeceras de seguridad» de .htaccess, elimina sus constantes de wp-config.php, recupera las líneas que había comentado allí y borra sus tareas programadas.

Dos cosas que debes saber:

  • Desactiva primero el modo bajo ataque. Su bloque en .htaccess se elimina cuando termina el modo, no al desactivarlo.
  • Si eliminas la carpeta del plugin por FTP en lugar de desactivarlo, no se revierte nada: elimina a mano los bloques entre los marcadores de Vigilante.

¿Cómo funciona la identificación en dos pasos?

Vigilante ofrece dos métodos de identificación en dos pasos (2FA). Con aplicación de verificación (TOTP), debes escanear un código QR en tu perfil para vincular una aplicación como Google Authenticator o Authy, y luego introducir un código de 6 dígitos de la aplicación cada vez que inicies sesión. Con los códigos por correo electrónico recibirás un código de un solo uso por correo electrónico tras introducir tu contraseña. Si lo activa el administrador del sitio, puedes marcar tu dispositivo como de confianza para saltarte la identificación en dos pasos durante 30 días.

¿Qué pasa si pierdo mi teléfono o el acceso a la aplicación de verificación?

Al configurar el TOTP de Vigilante, el plugin genera 10 códigos de recuperación. Puedes utilizar cualquiera de ellos como sustituto puntual del código de identificación. Si te quedas sin códigos de recuperación, un administrador puede restablecer tu TOTP desde los ajustes del plugin.

¿Qué pasa si no recibo el código 2FA por correo electrónico?

Comprueba primero tu carpeta de correo no deseado. Puedes hacer clic en «Reenviar código» en el formulario de verificación. Los códigos caducan tras 10 minutos por defecto. Si el problema persiste, un administrador puede desactivar temporalmente la identificación en dos pasos desde los ajustes del plugin.

¿Puedo cambiar entre correo electrónico y aplicación de verificación?

Sí. Ve a «Seguridad en el acceso > Identificación en dos pasos» y cambia el método de verificación. Si están activos los avisos, los usuarios afectados recibirán un correo electrónico en el que se explica el nuevo método y cómo configurarlo.

¿Qué perfiles de usuario requieren 2FA?

Por defecto, la identificación en dos pasos (2FA) se aplica a los administradores y editores. Puedes personalizar qué perfiles requieren 2FA en los ajustes de seguridad del inicio de sesión y excluir a usuarios específicos individualmente.

¿Cómo puedo recuperarme si me han bloqueado el acceso?

Acceda a tu sitio web a través de FTP/SFTP y cambia el nombre de la carpeta del plugin para desactivarlo temporalmente, o elimina las filas de la tabla vigilante_login_attempts correspondientes a tu dirección IP en la base de datos.

¿El cortafuegos bloqueará a los usuarios legítimos?

El cortafuegos está configurado para permitir el funcionamiento normal de WordPress, incluyendo el editor de bloques, la API REST y los maquetadores más populares. Si experimentas problemas puedes añadir direcciones IP específicas a la lista blanca o ajustar los umbrales de limitación de tráfico.

Bloquear bots sospechosos también detiene a los rastreadores de SEO (Ahrefs, Semrush, Majestic, Screaming Frog) y a los clientes de línea de comandos (curl, wget, python-requests). Para dejar pasar a uno de ellos, añade su nombre a la lista blanca de User-Agent.

¿Por qué falta una solicitud bloqueada en la auditoría de seguridad?

Las solicitudes se bloquean en dos lugares:

  • Las reglas en .htaccess (bots maliciosos, cadenas de consulta sospechosas, métodos HTTP inusuales, archivos protegidos) responden 403 antes de que se cargue WordPress, así que no se registra nada.
  • El cortafuegos de PHP registra lo que bloquea. «Bot sospechoso bloqueado» muestra la entrada de la lista que coincidió; el User-Agent completo está en su propia columna.

Una página servida por una caché de página o un CDN no llega a ninguno de los dos. Lee el registro como un mínimo, no como un recuento de cada ataque.

¿Puedo usarlo con otros plugins de seguridad?

Aunque Vigilante funciona de forma independiente, ejecutar varios plugins de seguridad puede provocar conflictos. Recomendamos probar primero en un entorno de pruebas si necesitas combinar soluciones de seguridad.

¿Funciona con plugins de caché?

Sí. Vigilante es compatible con los plugins de caché más populares. El cortafuegos se ejecuta antes que las capas de caché, y las reglas .htaccess no interfieren con los mecanismos de caché.

¿Funciona con WooCommerce?

Sí. Vigilante incluye ajustes de compatibilidad para WooCommerce. El módulo de seguridad REST API permite automáticamente las variables de WooCommerce, y el cortafuegos no bloqueará las conexiones de la pasarela de pago.

¿Cómo puedo comprobar mis cabeceras de seguridad?

Usa la herramienta de prueba de cabeceras integrada en la pestaña «Cabeceras de seguridad» o visita securityheaders.com con la URL de tu sitio para obtener una calificación de seguridad.

¿Qué es la comprobación de seguridad?

La comprobación de seguridad es una auditoría bajo demanda integrada en el escritorio. Realiza más de 50 comprobaciones en 6 categorías (SSL/TLS, cabeceras HTTP, exposición de WordPress, acceso e identificación archivos sensibles y comprobaciones internas) y ofrece una puntuación del 0 al 100 con puntuación de A a E. A diferencia de los escáneres externos online, se ejecuta íntegramente en tu servidor y tiene acceso a 16 comprobaciones internas exclusivas: estado de fin de vida útil de PHP, actualizaciones pendientes, plugins cerrados/eliminados, autoprotección de Vigilante, permisos de archivos, detección de salts por defecto, administradores sin 2FA activada y mucho más.

¿La comprobación de seguridad en vía mis datos a algún servicio externo?

No. Todas las comprobaciones se ejecutan en tu servidor. El único tráfico externo son tres consultas DNS contra listas negras públicas (Spamhaus, Barracuda, SpamCop) para la categoría de reputación: consultas DNS estándar sin autenticación, sin claves de API, y no se envía nada más allá de la dirección IP de tu sitio.

¿Qué mide la puntuación de la comprobación de seguridad?

Suma los puntos de cada comprobación que pasa. Algunas comprobaciones prueban el sitio en vivo: HTTPS, las cabeceras que recibe el navegador, archivos que no deberían ser accesibles. Otras leen un ajuste de Vigilante, como la URL de inicio de sesión personalizada, el límite de intentos de inicio de sesión o la autenticación en dos pasos, y te dicen si está activado, no si un CDN o tu proveedor de alojamiento cambia el resultado. La puntuación de configuración del escritorio solo mira los ajustes, así que los dos números pueden diferir.

¿Cuán a menudo debería realizar la comprobación de seguridad?

Ejecútala manualmente tras cualquier cambio importante (actualización de un plugin, migración de servidor, configuración de un nuevo perfil de usuario). Para una supervisión continua activa la exploración automática semanal desde el widget. Solo recibirás un correo electrónico si la puntuación baja 10 puntos o más, o si una nueva comprobación crítica empieza a fallar — así que no recibirás spam de exploraciones rutinarias.

¿Qué es la caducidad de contraseñas?

Puedes requerir a los usuarios que cambien sus contraseñas tras un número determinado de días (30, 60, 90, etc.). Se avisa a los usuarios antes de que caduque. Una vez que caduque se les redirige a su perfil para que establezcan una nueva antes de poder realizar cualquier otra acción. El historial de contraseñas impide reutilizar contraseñas recientes.

¿Qué es la aprobación de registros?

Cuando está activada, los nuevos registros de usuarios requieren la aprobación manual de un administrador antes de que la cuenta se active. Los usuarios pendientes no pueden iniciar sesión hasta que sean aprobados. Puedes configurar el rechazo automático después de un número determinado de días.

¿Qué hace la verificación por correo electrónico?

Los nuevos usuarios deben verificar su dirección de correo electrónico haciendo clic en un enlace antes de que su cuenta se active. Esto evita registros falsos y garantiza que la información de contacto sea válida.

¿Cómo funcionan los límites de sesión?

Puedes limitar el número de sesiones simultáneas que puede tener cada usuario. Cuando se alcanza el límite se bloquea el nuevo inicio de sesión o se cierra la sesión más antigua, dependiendo de tu configuración.

¿Puedo exportar el registro de auditoría de seguridad?

Sí. El registro de la auditoría de seguridad se puede exportar a formato CSV para su análisis externo o para la elaboración de informes de cumplimiento. También puedes filtrar los registros por tipo de evento, usuario o intervalo de fechas antes de exportarlos.

¿Qué eventos se envían por correo electrónico?

Cada evento se registra como «Información», «Advertencia» o «Crítico». Por correo electrónico recibes:

  • Alertas de la auditoría de seguridad: eventos críticos por defecto, como un plugin cerrado. Elige «Advertencia y crítico» para recibir más.
  • Supervisión de administradores, en «Usuarios»: un administrador nuevo, un cambio de perfil a administrador y cambios en el correo electrónico o la contraseña de un administrador. Cada uno tiene su propia casilla de verificación.
  • Integridad de archivos: los hallazgos de cada análisis, según el nivel que hayas elegido.
  • Autoprotección: siempre, cuando cambian los propios archivos de Vigilante.

¿Qué archivos revisa el escáner de integridad?

Comprueba:

  • El núcleo de WordPress, contra las sumas de comprobación que publica WordPress.org, más cualquier archivo añadido a wp-admin o wp-includes.
  • Los plugins de WordPress.org, contra sus sumas de comprobación.
  • Los temas de WordPress.org, contra el paquete que WordPress.org publica para la versión instalada. Se descarga una vez por versión.
  • En ambos, los archivos que han cambiado, los archivos que faltan y los archivos PHP que no están en la copia publicada.
  • Los plugins y temas de cualquier otro origen, los plugins must-use y los drop-ins (advanced-cache.php, object-cache.php y similares). No hay copia oficial de ellos, así que se busca en ellos código ofuscado.
  • El directorio de subidas, por PHP y otros scripts, dobles extensiones, archivos .htaccess y archivos de configuración de PHP.
  • Las demás carpetas de wp-content (languages, upgrade y similares), por código oculto en sus archivos PHP, a menos que estén en Rutas excluidas. Un archivo de traducción solo debe contener texto.
  • La raíz del sitio, wp-content y la carpeta de plugins, por archivos sueltos que no pertenecen ahí, copias de seguridad dejadas al alcance y un .user.ini o php.ini que carga otro archivo.
  • wp-config.php y .htaccess, por cualquier cambio desde la última vez que los aprobaste.

Los resultados indican lo que no se ha podido comparar. Para esos, un resultado limpio significa que no se ha encontrado código oculto, no que cada archivo sea el original. Un archivo PHP demasiado grande para analizarlo (más de 8 MB) se lista como no analizado.

¿Qué significan los hallazgos de integridad de archivos?

  • Modificado: el archivo no coincide con la copia en WordPress.org. Normalmente una actualización que no terminó o una edición manual. Reinstalar el plugin, el tema o WordPress lo soluciona.
  • Sospechoso: código donde no se espera ninguno (PHP en uploads o en la raíz del sitio) o código ofuscado. Las infecciones reales acaban aquí, y también los archivos de caché o de plantillas que generan algunos plugins.
  • Adicional: un archivo que WordPress, el plugin o el tema no incluyen. A menudo legítimo. Una copia de wp-config.php o un volcado de la base de datos en la raíz del sitio debería moverse fuera.
  • Configuración crítica: wp-config.php o .htaccess han cambiado desde la última vez que los aprobaste.
  • Cerrado o eliminado: WordPress.org cerró el plugin. Sustitúyelo.

He recibido un correo electrónico diciendo que wp-config.php o .htaccess han cambiado. ¿Me han hackeado?

Normalmente no. Los plugins de caché, seguridad y redirección reescriben sus propios bloques en esos archivos, a menudo en cada actualización, y Vigilante informa de cada cambio que no ha hecho él mismo.

Abre Integridad de archivos, pulsa «Revisar cambios» y lee las líneas. Si pertenecen a un plugin que usas, pulsa Aprobar: eso registra el contenido actual como referencia y no toca el archivo. Las líneas que no puedas explicar necesitan un examen más detallado, sobre todo las que cargan un archivo (auto_prepend_file, include) o envían solicitudes a un archivo PHP.

Recibes ese correo electrónico una vez por cambio, no después de cada análisis. El cambio permanece en la lista de Integridad de archivos hasta que lo apruebes.

El análisis sigue informando de archivos que están bien. ¿Qué puedo hacer?

  • Ignorar oculta un archivo.
  • Para una carpeta donde un plugin sigue generando PHP (plantillas compiladas, cachés), añade la carpeta a las rutas excluidas, por ejemplo wp-content/uploads/cache.
  • Si el análisis dice que se le agotó el tiempo en una carpeta de wp-content, como una caché muy grande, añade esa carpeta también a las rutas excluidas.
  • Un .htaccess dentro de uploads que solo deniega el acceso protege esa carpeta, y no se reporta. WooCommerce escribe varios.

¿Qué escribe Vigilante en .htaccess y wp-config.php?

En Apache y LiteSpeed, dos bloques en .htaccess, entre las líneas # BEGIN Vigilante Protection y # END Vigilante Protection, y # BEGIN Vigilante Security Headers y # END Vigilante Security Headers. Mientras el modo Bajo ataque está activado hay un tercero, # BEGIN Vigilante Under Attack.

En wp-config.php, un bloque entre /* BEGIN Vigilante Security Constants */ y /* END Vigilante Security Constants */, y el prefijo // [VIGILANTE_ORIGINAL] en cualquier línea tuya que definiera una de las mismas constantes.

Vigilante escribe estos bloques cuando guardas sus ajustes y después de que se actualice, no entre medias. Si otro plugin o una persona elimina uno, vuelve a guardar esa pestaña para escribirlo de nuevo.

He actualizado desde una versión en la que el archivo wp-config.php se almacenaba en la base de datos. ¿Hay que hacer algo más?

Las versiones anteriores guardaban una copia del archivo wp-config.php en una opción para que el análisis de integridad pudiera mostrar qué líneas habían cambiado, y esa copia contenía la contraseña de la base de datos y las ocho claves de autenticación y sales. La actualización elimina esa copia, pero ninguna actualización puede revertir una filtración que ya se haya producido. Por lo tanto, si tu base de datos, o cualquier copia de seguridad de la misma, pudiera haber sido leída por otra persona mientras esa copia estaba almacenada, sustituye las ocho claves y sales de tu archivo wp-config.php por otras nuevas obtenidas del servicio de claves secretas de WordPress.org, y cambia la contraseña de la base de datos si tu proveedor de alojamiento te lo permite. Al sustituir las sales, se cerrará la sesión de todos los usuarios, incluido tú mismo, que es precisamente el objetivo de hacerlo.

¿Un análisis comprueba siempre todo el sitio?

No en uno muy grande. Un análisis se ejecuta durante 60 segundos como máximo y empieza desde el principio cada vez. Con muchos plugins, una carpeta de subidas grande o una caché grande, puede que no llegue a todos los plugins y temas, y es la misma parte la que se omite en cada análisis.

  • Integridad de archivos indica cuándo el último análisis fue parcial, y nombra los plugins, los temas y las áreas a las que no llegó. El correo electrónico del análisis también lo indica.
  • La comprobación de seguridad no cuenta un análisis parcial como uno limpio.
  • Si el servidor detiene el análisis antes de que termine, o WordPress no ejecuta sus tareas programadas, no se guarda nada. Integridad de archivos y la comprobación de seguridad indican entonces que ninguna exploración ha terminado desde la fecha mostrada.
  • Para comprobar lo que se ha omitido, Integridad de archivos lista las carpetas que el análisis sí comprobó: añádelas a las rutas excluidas, ejecuta una exploración manual y quítalas de nuevo.
  • Mientras la carpeta entera de un plugin o de un tema, o la carpeta de subidas, esté en las rutas excluidas, integridad de archivos y la comprobación de seguridad lo siguen indicando: ninguna exploración mira dentro de ella.
  • Añadir a las rutas excluidas las carpetas grandes que no necesitan comprobarse deja más tiempo para el resto.

¿Con qué frecuencia se ejecuta la auditoría de archivos?

Puedes configurar análisis automáticos para que se ejecuten a diario o semanalmente. También puedes ejecutar análisis manuales cuando quieras. Las notificaciones por correo electrónico admiten tres niveles: todos los hallazgos, solo los hallazgos graves (archivos sospechosos y adicionales, cambios en wp-config.php o .htaccess y plugins cerrados), o desactivadas. El correo electrónico se envía cuando un análisis encuentra algo nuevo, así que un hallazgo del que ya se te informó no se repite.

¿Cómo puedo saber si el propio Vigilant no ha sido manipulado?

Vigilante verifica sus propios archivos contra las sumas de verificación que WordPress.org publica para tu versión, el archivo MANIFEST.sha256 incluido con el plugin y una huella de ese manifiesto guardada en tu base de datos. El resultado aparece en «Integridad de archivos», con los resultados de la última exploración, y en la «Comprobación de seguridad». Para comprobarlo desde fuera de WordPress, ejecuta wp plugin verify-checksums vigilante, o php bin/verify-manifest.php dentro de la carpeta del plugin, que además informa de los archivos añadidos y acepta los finales de línea reescritos por el proveedor de alojamiento. SECURITY.md lista todas las opciones.

¿Qué es el archivo MANIFEST.sha256?

Una lista de la suma de verificación SHA-256 de cada archivo del plugin, en el formato estándar de la herramienta sha256sum, generada como último paso de cada versión. Es lo que permite a Vigilante, y a ti, detectar un archivo modificado incluso cuando no se puede contactar con WordPress.org. readme.txt y changelog.txt no figuran en ella, porque WordPress.org permite actualizarlos sin una nueva versión.

¿Detecta la autoprotección vulnerabilidades en Vigilante?

No. Detecta que los archivos de Vigilante han sido modificados, borrados o añadidos, no fallos en su código. Las vulnerabilidades se corrigen en nuevas versiones, así que mantén Vigilante actualizado e informa de cualquiera que encuentres como explica SECURITY.md.

¿Cuál es la diferencia entre los preajustes estándar y máximo?

El nivel estándar aplica ajustes equilibrados adecuados para la mayoría de los sitios. El nivel máximo aplica reglas más estrictas: límites de tráfico más bajos, políticas de CSP más estrictas, avisos de administración obligatorios, límites de sesión y un refuerzo más agresivo. El nivel máximo puede requerir adaptaciones para sitios con funcionalidades complejas.

¿Dónde se almacenan las copias de seguridad?

En ningún lugar del servidor. La copia de seguridad de la configuración (wp-config.php, .htaccess y robots.txt) es un ZIP creado al vuelo y enviado a tu navegador, y Vigilante no guarda ninguna copia de esos archivos, porque contienen la contraseña de tu base de datos y otros secretos. Una copia de seguridad de la base de datos que descargas se genera como un ZIP temporal con un nombre imposible de adivinar y se elimina justo después de la descarga.

¿Qué es el modo Bajo ataque?

El modo «Bajo ataque» es una característica de emergencia que puedes activar cuando tu sitio web está sufriendo un ataque activo. Añade un desafío JavaScript que los navegadores auténticos resuelven automáticamente en unos segundos, mientras que los bots y los scripts automatizados quedan bloqueados por completo. También aplica una limitación de velocidad agresiva, bloquea los métodos HTTP restringidos y restringe el acceso a la API.

¿El modo «Bajo ataque» afectará a los usuarios que hayan iniciado sesión?

No. Los usuarios que han iniciado sesión, las páginas de administración, las tareas cron, las solicitudes AJAX y la página de inicio de sesión están excluidos del desafío JavaScript. Solo los visitantes no identificados que visiten la web ven la página de verificación.

¿Qué pasa si se me olvida desactivar el modo «Bajo ataque»?

Se desactiva automáticamente después de 4 horas. También recibirás un aviso por correo electrónico cuando se active y se desactive.

¿El modo «Bajo ataque» cambia mis ajustes de seguridad habituales?

No. Funciona independientemente de tus preajustes (estándar o máximo). Tus ajustes habituales no se ven afectados y siguen funcionando con normalidad una vez que se desactiva el modo «Bajo ataque».

¿Cómo funciona la copia de seguridad de la base de datos?

Ve a «Vigilante > Herramientas > Copia de seguridad de la base de datos». Selecciona las tablas que quieras incluir (o deja todas seleccionadas) y, a continuación, haz clic en «Descargar». La copia de seguridad se genera como un archivo ZIP temporal con un nombre imposible de adivinar, se envía a tu navegador y se elimina del servidor inmediatamente después de la descarga.

¿Qué ocurre al cambiar el prefijo de la base de datos?

WordPress utiliza wp_ como prefijo por defecto para las tablas. Cambiarlo por un prefijo aleatorio añade una capa de protección contra los ataques de inyección SQL que tienen como objetivo los nombres de tabla por defecto. Ve a «Vigilante > Refuerzo de WP > Refuerzo de la base de datos». Crea siempre una copia de seguridad antes de cambiar el prefijo.

¿Cómo excluyo del cortafuegos servicios de gestión como ModularDS o ManageWP?

Ve a «Vigilante > Cortafuegos > Listas de User-Agent» y añade el nombre del servicio (por ejemplo, ModularDS, ManageWP UptimeRobot) a la lista blanca de User-Agent. Utiliza la coincidencia parcial, por lo que al introducir « ModularConnector» se aplicará a cualquier cadena de User-Agent que contenga esa palabra clave.

Si también utilizas una URL de acceso personalizada, añade también la dirección IP del escritorio de administración a la lista blanca de IPs del cortafuegos. Algunas operaciones (por ejemplo, la instalación de una actualización de un plugin desde MainWP) acceden a wp-admin sin una sesión de WordPress y con un agente de usuario genérico de WordPress en lugar del nombre del servicio, por lo que la regla de User-Agent por sí sola no las detectaría. Una IP incluida en la lista blanca puede superar la protección del login/wp-admin oculto (y aún así debe verificarse).

¿Puedo enviar avisos de seguridad a alguien que no sea el administrador del sitio?

Sí. Ve a «Vigilante > Ajustes y herramientas > Ajustes de avisos». Puedes añadir destinatarios de correo electrónico adicionales (uno por línea) y, si lo deseas, desmarcar el correo electrónico de administración de WordPress. Esto resulta útil para profesionales de mantenimiento que gestionan varios sitios web y necesitan recibir todas las alertas de seguridad.

¿Puedo personalizar los destinatarios de los avisos como quiera?

Sí. Utiliza el filtro vigilante_notification_recipients. Este filtro recibe y devuelve una lista de direcciones de correo electrónico que se utilizan para todos los avisos administrativos:

add_filter( 'vigilante_notification_recipients', function( $recipients ) {
    $recipients[] = 'security-team@example.com';
    return $recipients;
} );

Reseñas

9 de octubre de 2026 1 respuesta
Un gran plugin de seguridad, con bastantes más opciones que otros de pago. Además no ocupa mucho y no se nota en lo que a rendimiento del sitio se refiere. Para colmo, responde en el foro de soporte antes de que puedas cerrar sesión y hacer otras cosas. ¡No se puede pedir más! Gracias, Fernando.
22 de septiembre de 2026 1 respuesta
Hola que tal me interesa mucho probar el plugin pero cuando elijo un presets que se supone que al usarlo deberia no aparecer mas errores despues de volver a escanear, me siguen saliendo errores que aun no se han solucionado, algo estoy haciendo mal?
11 de septiembre de 2026 1 respuesta
Posiblemente el mejor plugin de seguridad que existe actualmente. Simple, liviano, efectivo… Y gratis. Más no se puede pedir. Un trabajo excelente por parte de Fernando, como siempre. Muchísimas gracias por el trabajo.
15 de agosto de 2026 1 respuesta
I'm impressed by the scope and ease of use of this plugin. It has pointed out quite a few weak points in my website security which I have subsequently fixed. For a free plugin, Vigilant is surprisingly comprehensive and excellent!
13 de julio de 2026 1 respuesta
Fernando está haciendo un gran trabajo con este plugin. Contiene casi todas las funcionalidades de todos los plugins que existen para WordPress relacionados con seguridad, y sin coste para la comunidad. Os animo a probar todos los plugins que Fernando desarrolla y podéis encontrar en el repositorio de WordPress, merecen mucho la pena. ¡Gracias Fernando por ser una joya para la comunidad WordPress!
Leer todas las 21 reseñas

Colaboradores y desarrolladores

«Vigilante – Suite de seguridad 100% gratis: Cortafuegos, 2FA, login, cabeceras, escáner…» es un software de código abierto. Las siguientes personas han colaborado con este plugin.

Colaboradores

«Vigilante – Suite de seguridad 100% gratis: Cortafuegos, 2FA, login, cabeceras, escáner…» está traducido en 3 idiomas. Gracias a los traductores por sus contribuciones.

Traduce «Vigilante – Suite de seguridad 100% gratis: Cortafuegos, 2FA, login, cabeceras, escáner…» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios

3.0.4

Corrige el aviso de contraseña caducada, que no aparecía cuando la contraseña caducaba durante una sesión abierta. Ahora lleva al usuario a la parte superior del perfil, donde se está el aviso. También arregla un bucle de redirección para los clientes en WooCommerce, y limita el acceso de una cuenta con contraseña caducada a su propio formulario de perfil.

  • Mejorado: Cuando una contraseña ha caducado se redirige al usuario a la parte superior de su perfil, donde aparece un aviso explicando el motivo, en lugar de llevarlo directamente al campo de la contraseña, con el aviso oculto justo encima. El aviso incluye ahora un enlace al campo.
  • Corrección: Faltaba el aviso de que una contraseña había caducado cuando vencía mientras el usuario seguía conectado. Se redirigía al usuario a su perfil sin ninguna explicación, y el aviso solo aparecía tras volver a iniciar sesión.
  • Corrección: El último día antes de que caducara una contraseña no se mostraba el aviso, por lo que el cambio obligatorio se producía sin previo aviso el día anterior.
  • Corrección: En una tienda con WooCommerce, una cuenta sin acceso al área de administración (por ejemplo, la de un cliente) cuyo perfil está en la lista de «Perfiles afectados» quedaba atrapada en un bucle de redirección cuando caducaba su contraseña. WooCommerce le redirigía desde el perfil a «Mi cuenta» y Vigilante le devolvía, por lo que no podía ni utilizar la tienda ni cambiar la contraseña. Ahora, a esa cuenta se le permite acceder a la pantalla de su perfil en el área de administración mientras el cambio está pendiente, y solo a esa pantalla. La contraseña se cambia allí, no en «Mi cuenta», y, una vez guardada, WooCommerce devuelve la cuenta a «Mi cuenta» como de costumbre.
  • Corrección: Cuando había un cambio de contraseña pendiente se permitía el acceso a todas las solicitudes dirigidas a la pantalla de perfil, y desde esa pantalla se puede acceder a otros elementos: una página de plugins, un importador, una acción pasada en la dirección o el perfil de otro usuario en el caso de una cuenta con permiso para editar usuarios. Una cuenta con una contraseña caducada podía seguir utilizando esas funciones. Ahora solo se permite el acceso a su propio formulario de perfil, ya sea para visualizarlo o para guardarlo. En una red, las pantallas de perfil del administrador de la red y del escritorio del usuario conducen al perfil del sitio, donde se encuentra el aviso.
  • Corrección: En un sitio cuya dirección de WordPress y dirección del sitio estén en servidores diferentes (por ejemplo, un sitio «headless») o cuya dirección contenga letras acentuadas o no latinas tal y como están escritas, un usuario con una contraseña caducada quedaba atrapado en un bucle de redirección. La redirección al perfil se trataba como una redirección al escritorio, lo que enviaba al usuario de nuevo al perfil. Ahora se accede correctamente al perfil.

3.0.3

Integridad de archivos ahora compara los temas con su paquete de WordPress.org, busca en todo el código que no tiene copia oficial y examina los plugins must-use, los drop-ins, wp-admin, wp-includes y el resto de wp-content. Los correos electrónicos del análisis se envían una vez por cada hallazgo nuevo.

  • Mejorado: Integridad de archivos compara los temas de WordPress.org con el paquete que WordPress.org publica para la versión instalada. WordPress.org no tiene sumas de comprobación para los temas, así que hasta ahora ningún archivo de tema se comparaba con nada. El paquete se descarga una vez por versión.
  • Mejorado: la integridad de archivos busca código oculto en todos los archivos PHP de un plugin o tema sin copia oficial, no solo en los primeros 50, y lee archivos de hasta 8 MB. Un archivo de más de 512.000 bytes no se abría, así que pasaba como limpio. Uno de más de 8 MB se lista como no analizado.
  • Mejorado: la integridad de archivos examina los archivos añadidos a wp-admin y wp-includes, los plugins imprescindibles y los drop-ins, los archivos PHP sueltos en wp-content, y las carpetas con PHP entre los plugins o los temas que WordPress no lista como tal.
  • Mejorado: la integridad de archivos busca código oculto en los archivos PHP de las demás carpetas de wp-content (languages, upgrade y similares). Un archivo de traducción que contenga algo distinto de texto se reporta, porque WordPress carga los archivos de traducción en cada solicitud.
  • Mejorado: una instalación nueva ya no empieza con wp-content/cache entre las rutas excluidas, así que esa carpeta también se analiza. Un sitio que ya la tenga ahí la conserva.
  • Mejorado: la integridad de archivos informa de un .htaccess, .user.ini o php.ini fuera de uploads que hace que el servidor ejecute código o cargue un archivo.
  • Mejorado: la integridad de archivos encuentra, en código sin copia oficial, datos de la solicitud ejecutados como código o como comando, una función elegida por la solicitud y un archivo incluido desde otro servidor. No se informa del mismo texto en un comentario.
  • Mejora: un archivo en el que la búsqueda de código oculto no puede terminar se lista como no analizado en lugar de pasar como limpio.
  • Mejorado: la itegridad de archivos ahora compara wp-includes/version.php, y compara los sitios que no están en inglés con las sumas de comprobación en inglés mientras WordPress.org no tiene ninguna para su idioma, en lugar de dejar el núcleo sin comprobar.
  • Mejorado: la integridad de archivos informa de los archivos borrados de un plugin o un tema, e informa de una solicitud fallida a WordPress.org como un error en lugar de tratar el plugin como uno sin copia oficial.
  • Mejorado: la integridad de archivos informa de más tipos de archivo en la carpeta de subidas (.pht, .php8, nombres como shell.php.suspected, .user.ini, php.ini, scripts de shell y CGI), un .user.ini o php.ini en la raíz del sitio que carga un archivo en cada solicitud, además de copias de seguridad dejadas en la raíz del sitio.
  • Mejora: la pestaña Integridad de archivos indica qué suele ser cada tipo de hallazgo y qué hacer al respecto, nombra los plugins y temas que no se han podido comparar, y dice cuándo un análisis fue parcial en lugar de decir que todos los archivos pasaron.
  • Mejora: cuando un análisis agota el tiempo, Integridad de archivos y el correo electrónico del análisis nombran los plugins, los temas y las áreas a las que no llegó, e Integridad de archivos lista las carpetas que excluir para que un análisis manual llegue al resto. Un análisis se ejecuta durante 60 segundos como máximo y empieza desde el principio cada vez, así que en un sitio muy grande la misma parte se queda sin comprobar en cada análisis.
  • Mejorado: la integridad de archivos y la comprobación de seguridad indican cuándo las rutas excluidas contienen la carpeta entera de un plugin o de un tema, o la carpeta de subidas. Ninguna exploración mira dentro de ellas, y la comprobación de seguridad ya no cuenta un análisis así como limpio.
  • Mejorado: La integridad de archivos y la comprobación de seguridad indican cuándo ningún análisis programado ha terminado durante más tiempo del que permite la programación. Una epxloración que el servidor detiene a medias no guarda ningún resultado, y tampoco uno que WordPress nunca inicia, así que el último que sí terminó seguía mostrándose como el actual.
  • Mejora: el correo electrónico del análisis se envía cuando un análisis encuentra algo nuevo, no después de cada análisis, y su asunto nombra wp-config.php o .htaccess cuando eso es todo lo que ha cambiado.
  • Mejora: los eventos de dos factores se pueden filtrar en la auditoría de seguridad, y PHP 8.5 está en la tabla de fin de vida útil de la comprobación de seguridad.
  • Corrección: un .htaccess en uploads que solo deniega el acceso ya no se reporta, y tampoco la regla que prohíbe PHP ni una línea comentada. Options +ExecCGI y los manejadores CGI o SSI, que se listaban como reglas personalizadas, ahora son sospechosos.
  • Corrección: el archivo index.php de dos líneas que incluye WordPress ya no se reporta como PHP en uploads ni como archivo adicional.
  • Corrección: los temas incluidos y Akismet ya no aparecen como archivos del núcleo modificados o faltantes cuando se actualizan o se eliminan.
  • Corrección: una cadena hexadecimal de unos 12.000 caracteres o más no era encontrada por la búsqueda de código oculto. Cuanto más largo era el contenido, menos se encontraba.
  • Corrección: un nombre de función dividido en trozos no se encontraba cuando una cadena larga de cadenas unidas venía antes en el archivo.
  • Corrección: un archivo creado a propósito podía mantener ocupada la búsqueda de código oculto el tiempo suficiente para acortar el análisis.
  • Corrección: el análisis de la carpeta de subidas se detenía después de 10.000 archivos sin avisar.
  • Corrección: una carpeta que el análisis no podía leer detenía el análisis de uploads, de un plugin o de un tema sin decirlo, y no se comprobaba nada después. Ahora el análisis continúa e informa de la carpeta.
  • Corrección: la exploración manual solo guardaba la segunda mitad del análisis en el historial de puntuaciones de la comprobación de seguridad.
  • Corrección: la comprobación de seguridad daba por válido un análisis de integridad de archivos que no lo había comprobado todo, siempre que no hubiera encontrado nada en lo que sí comprobó.
  • Corrección: la etiqueta Limitar métodos HTTP, y el comentario escrito en .htaccess, describían una regla que no es la que se aplica.
  • Corrección: el ajuste de alertas de la auditoría de seguridad decía que un administrador nuevo se registra como crítico. Se registra como advertencia, y tiene su propio correo electrónico en «Usuarios».
  • Corrección: el readme describía copias de seguridad automáticas de .htaccess y wp-config.php que ya no existen.
  • Corrección: se han eliminado 11 cadenas y un método que nada usaba.

3.0.2

Corrige las direcciones con acentos o letras no latinas en la redirección HTTPS, la comprobación del modo bajo ataque y una dirección de acceso personalizada; evita que el alias www lleve al escritorio, guarda las rutas de integridad de archivos tal y como se han escrito, y evita que la CSP por defecto altere los estilos de los sitios servidos a través de HTTP.

  • Corrección: La redirección de HTTP a HTTPS conserva los caracteres codificados en porcentaje de la dirección. Una visita a /categor%C3%ADa/ se redirigió a /categora/, lo que provocaba un error 404, una ruta en cirílico se redirigía a //, y todos los parámetros perdían sus caracteres codificados.
  • Corrección: La misma redirección toma el host declarado por el sitio, no de la cabecera «Host». Al visitar el alias «www» del sitio, o el servidor mediante su dirección IP, se enviaba una redirección permanente al escritorio en lugar de a la misma página. Un sitio que servía otros nombres de host propios a través de allowed_redirect_hosts ahora obtiene el host declarado para todos ellos, mientras que el área de administración de un sitio cuyo WordPress se aloja en un host propio permanece en ese host.
  • Corrección: Una dirección de acceso oculta escrita en un alfabeto no latino no encontraba nada, así que la página de acceso permanecía oculta y su propia dirección devolvía un error 404. Ahora se compara en mayúsculas y minúsculas, en formato hexadecimal y como UTF-8 sin codificar. Una dirección que solo coincidía tras eliminar sus caracteres codificados, como /my-log%41in/ para /my-login/, ya no abre la página de acceso.
  • Corrección: Tras resolver el reto en el modo «Bajo ataque», el visitante accede a la página que ha solicitado, con los acentos y los parámetros intactos.
  • Corrección: El registro de actividad conserva la dirección de una solicitud bloqueada tal y como se envió, en lugar de borrar los caracteres codificados.
  • Corrección: Ahora funciona la opción de ignorar en «Integridad de archivos» un archivo cuyo nombre contenga caracteres codificados (por ejemplo, un %20 literal) o espacios repetidos. La ruta se guardaba sin esos caracteres, por lo que nunca coincidía con el archivo y la advertencia volvía a aparecer; además, la entrada guardada podía coincidir con otro archivo cuyo nombre estuviera alterado.
  • Corrección: Una ruta excluida en «Integridad de archivos» cuyo nombre contenga caracteres codificados (por ejemplo, un %20 literal) o espacios repetidos ahora se guarda tal y como se ha escrito, incluso al exportar e importar los ajustes. Antes se guardaba tras eliminar dichos caracteres, por lo que nunca coincidía. Además, cuando los caracteres codificados formaban parte del final del nombre, se guardaba como la carpeta superior, lo que impedía que se analizara todo el contenido de dicha carpeta. Ahora se omite cualquier línea que contenga etiquetas HTML. Las entradas ya guardadas no se modifican, por lo que aquellas que se guardaron recortadas deben volver a escribirse.
  • Corrección: El área de administración y sus URLs abiertas se reconocen a partir de la ruta tal y como se envía. Ya no se interpreta /wp-admin/admin-ajax.php%20 como admin-ajax.php, ni /wp-%41admin/page como una página del área de administración.
  • Corrección: En un sitio cuya dirección es http://, la directiva Content-Security-Policy por defecto ya no incluye upgrade-insecure-requests. Con Apache y el módulo de cabeceras activos, esa directiva hacía que los navegadores solicitaran todas las hojas de estilo, scripts e imágenes a través de HTTPS, a lo que el sitio no respondía, por lo que el sitio perdía sus estilos. Ahora la directiva solo se aplica cuando la dirección del sitio es https://, por lo que un sitio servido a través de HTTPS mediante un proxy o una CDN que termine el TLS debería tener su dirección configurada como https://. Las reglas se reescriben al actualizar, por lo que un sitio que ya se viera afectado se recupera al actualizar, y la pestaña «Cabeceras de seguridad» lo indica junto a la política.
  • Corrección: El escritorio lee el ajuste de XML-RPC en su ubicación actual. La puntuación de configuración nunca daba los tres puntos por bloquear XML-RPC, y la recomendación de desactivarlo siempre aparecía, ya que ambas se basaban en una casilla de selección que dejó de guardarse a partir de la versión 2.9.7. Un sitio que bloquee XML-RPC, tal y como lo hacen los ajustes predeterminados, verá cómo su puntuación aumenta en dos o tres puntos sin cambiar nada, y la recomendación, cuando sea aplicable, ahora redirige a refuerzo de WP.
  • Corrección: La tarjeta «Comprobación de seguridad» del escritorio indicaba que se habían realizado 13 comprobaciones internas, cuando en realidad son 16, y ya no muestra ninguna cifra.

3.0.1

Corrige el problema por el que las listas de perfiles de la identificación en dos pasos, las reglas de contraseñas y la caducidad de las contraseñas volvían a aparecer marcadas tras guardar, y evita que una pestaña guardada borre las listas que no tienen ningún campo visible en pantalla.

  • Mejorado: SECURITY.md describe la alerta de autoprotección y el bloque «Integridad de archivos» tal y como funcionan actualmente, y dos comentarios del código que aún describían el comportamiento anterior.
  • Corrección: al desmarcar un perfil en «Aplicar a los siguientes perfiles» o en «Perfiles afectados» de la caducidad de contraseñas el cambio se guarda y permanece desmarcado. Las listas de valores se fusionaban posición por posición, tanto al guardar como al leer los ajustes, por lo que una lista más corta que la original volvía a aparecer con el final de esta última añadido, y no era posible eliminar ningún perfil.
  • Corrección: ya no se introduce un 0 literal en las listas cuando se desmarca el primer perfil de un grupo.
  • Corrección: al desmarcar todos los perfiles de un grupo ahora se envía una lista vacía en lugar de no enviarse nada, para que se pueda distinguir de un formulario que nunca haya incluido ese campo.
  • Corrección: al guardar una pestaña ya no se vacía una lista que no tenga ningún campo en esa pantalla, como los métodos HTTP permitidos del cortafuegos o la lista de nombres de usuario no seguros. Esos valores se conservaban únicamente porque, al leer los ajustes los valores originales volvían a aparecer como primeros en la lista.
  • Corrección: la autoprotección toma un manifiesto que WordPress.org confirma para la versión instalada, en lugar de indicarla como sustituida definitivamente. Un sitio que había instalado una copia de prueba de una versión y, posteriormente, la versión publicada, seguía en estado crítico, y la reparación no podía solucionarlo, ya que reinstala esos mismos archivos oficiales.
  • Corrección: las listas que no tenían ningún campo en ninguna pantalla vuelven a aparecer tras la actualización. Al guardar una pestaña, estas quedaban vacías en la base de datos, y hasta ahora esto quedaba oculto porque la configuración volvía a los valores iniciales al leerse. De lo contrario, un sitio que hubiera guardado la pestaña «Cortafuegos» habría empezado a devolver un error 403 para todos los métodos HTTP. Los cuatro elementos son los métodos HTTP permitidos, los nombres de usuario no seguros, los roles de aprobación de registros y los puntos finales REST públicos, y cada uno de ellos vuelve a su valor original, por lo que una lista que se haya acortado a propósito no se ve afectada.
  • Corrección: los cuatro parámetros también vuelven a su valor inicial cuando la lista almacenada está vacía, independientemente del origen de dicha lista. Ninguno de ellos puede vaciarse desde ninguna pantalla, por lo que una lista vacía es un vestigio, y solía significar bloquear todos los métodos, permitir todos los registros aunque el conmutador indicara lo contrario, o desactivar la API REST pública.
  • Corrección: adopción de un manifiesto que, tras la confirmación de WordPress.org, se registra tal y como es, en lugar de como un cambio de versión que no se produjo.

3.0.0

Ahora Vigilant verifica sus propios archivos comparándolos con WordPress.org, un manifiesto SHA-256 incluido y una huella digital de la base de datos. Se revisa a sí mismo tras cada actualización y restaura sus propias tareas programadas. La puntuación de la comprobación de seguridad puede variar ligeramente: se ha añadido una nueva comprobación.

  • Nuevo: Autoprotección. Vigilante verifica sus propios archivos comparándolos con tres referencias: las sumas de comprobación SHA-256 que WordPress.org publica para la versión instalada, un archivo MANIFEST.sha256 incluido en el plugin y una huella digital de ese manifiesto almacenada en la base de datos. La comprobación se ejecuta primero en cada análisis de integridad de archivos, fuera del tiempo asignado al análisis y sin tener en cuenta las rutas y extensiones excluidas del mismo, y una vez al día si no se ha realizado ninguna otra comprobación en las últimas 24 horas. Informa de archivos modificados, que faltan, ilegibles o añadidos, carpetas que no se pueden listar, enlaces simbólicos, archivos que figuran en el manifiesto pero que WordPress.org no distribuye, y un manifiesto sustituido, borrado o no válido. Un archivo PHP o JavaScript modificado, o un archivo de datos que cargue el plugin, es crítico, al igual que un archivo añadido que un servidor web pueda ejecutar, independientemente de la extensión de su nombre. Una hoja de estilo o una imagen modificada supone una advertencia, ya que los plugins de optimización y los servidores suelen reescribirlos, y los archivos de texto cuyos finales de línea haya reescrito el servidor no se notifican, ni tampoco el manifiesto cuando se haya reescrito de esa forma. «Integridad de archivos» muestra el resultado en el primer bloque de los resultados del análisis, con la explicación de lo que significa cada hallazgo y cómo solucionarlo. No hay ninguna opción para desactivarla: un plugin de seguridad al que se le pueda indicar que no se compruebe a sí mismo tiene una opción cuya única usuaria real es quien acaba de modificar sus archivos.
  • Nuevo: Vigilant se comprueba a sí mismo al final de cada actualización que WordPress le aplica, incluida una actualización realizada mediante la subida de un archivo zip, una vez que se ha restaurado la copia anterior tras una actualización fallida, y detecta un cambio de versión realizado fuera del actualizador, como una subida manual o por FTP, en la siguiente página de administración que abra un administrador o en la tarea de mantenimiento diario. Una nueva versión que WordPress.org no pueda confirmar genera una advertencia en lugar de considerarse fiable, la huella digital no se vuelve a tomar cuando se reactiva el plugin y, siempre que se detecte una degradación de versión, se notifica por correo electrónico.
  • Nuevo: La autoprotección cuenta con su propia alerta y no hay ningún ajuste que permita desactivarla. Un hallazgo crítico relacionado con los archivos propios de Vigilante siempre envía un correo electrónico, independientemente de dónde se detecte; este se deduplica según el conjunto de hallazgos y se envía una sola vez en la red, desde el sitio al que pertenecen los archivos compartidos y siempre también a la dirección de correo electrónico de la administración de la red. Ya no se incluye en el correo electrónico del análisis de integridad de archivos, que se rige por una configuración de notificaciones: desactivar el informe sobre archivos modificados también desactivaba la alarma sobre el propio plugin. Las advertencias permanecen en pantalla, donde no incitan a nadie a ignorar un correo electrónico, salvo en el caso de descenso o cambio de versión que no se pueda verificar con WordPress.org, que siempre se envían. Tampoco hay recordatorios: cada conjunto distinto de hallazgos solo se avisa una vez.
  • Nuevo: No se puede desactivar la autoprotección. No hay ningún ajuste para ello, por lo que la única forma es mediante el filtro vigilante_self_integrity_enabled, y Vigilante lo señala como crítico en todas las pantallas de administración, indica los nombres de los archivos que lo interceptan y lo registra en la auditoría de seguridad. El código que elimina las interceptaciones de la comprobación se detecta al final de cada página de administración y se notifica de la misma manera, junto con los plugins que se cargaron en esa solicitud. Además, un resultado con más de tres días de antigüedad deja de considerarse verificado, independientemente de lo que haya detenido la comprobación, por lo que un estado «verde» antiguo nunca se muestra como si fuera actual.
  • Nuevo: Supervisión de tareas programadas. Si algo elimina el mantenimiento diario, las comprobaciones por hora, la comprobación de seguridad semanal, la comprobación de plugins desactivados o el análisis de integridad programado, Vigilante lo vuelve a programar y lo registra, y si esa misma tarea vuelve a eliminarse en un plazo de 30 días, se informa de ello como un problema crítico por correo electrónico. Las tareas que hayas desactivado no se ven afectadas. En los sitios activados antes de que existiera alguna de esas tareas, la primera pasada las programa una vez, sin informar de ello. En una red multisitio, supervisa el sitio principal.
  • Nuevo: La comprobación de seguridad incluye una prueba de autoprotección de Vigilante en la categoría «Interna», la comprobación individual más exigente del analizador, cuya puntuación ahora se calcula sobre 40 en lugar de 30. Aunque los propios archivos de Vigilante aparecen como modificados, ambas puntuaciones del plugin se mantienen en la parte inferior de la escala y explican el motivo: todos los demás resultados se generan a partir de ese mismo código. El informe guardado se borra al actualizar, por lo que la puntuación puede variar tras la siguiente comprobación.
  • Nuevo: La autoprotección cuenta con su propio bloque en «Integridad de archivos», el primero de los resultados, codificado por colores según la gravedad, con los archivos detectados, el significado de cada hallazgo y las medidas que hay que tomar al respecto. El mismo texto aparece en los detalles de la «Comprobación de seguridad», en los detalles de cada entrada de la «Auditoría de seguridad» y en el correo electrónico de alerta, por lo que los cinco elementos nunca muestran información contradictoria. Los cambios en los propios archivos de Vigilante también se indican en rojo en el menú de Vigilante, se resumen en la parte superior de su escritorio y se muestran en todas las pantallas de administración hasta que se solucionen. Además, se muestra una advertencia en las pantallas de Vigilante. Los hallazgos sobre los propios archivos de Vigilante ya no aparecen en la lista junto con el resto del análisis, y no se pueden ignorar.
  • Nuevo: Reparación con un solo clic. Cuando Vigilante detecta que sus propios archivos han sido modificados, puede descargar una copia limpia desde WordPress.org y sustituir únicamente los archivos del plugin, conservando tus ajustes, tablas y registros, tras mostrar una pantalla en la que se explica exactamente lo que va a hacer. Instala la versión que distribuye WordPress.org, nunca la versión que indican los archivos, y nunca una versión más antigua que la que este sitio haya verificado. En una red se requiere un superadministrador, y cuando WordPress no puede modificar los archivos del plugin, la pantalla indica los pasos que hay que seguir manualmente.
  • Nuevo: SECURITY.md, con instrucciones sobre cómo informar de una vulnerabilidad, qué cubre y qué no cubre la autoprotección, y cómo verificar tú mismo una instalación, y bin/verify-manifest.php, una herramienta de línea de comandos que comprueba la carpeta del plugin con respecto al manifiesto y el manifiesto con respecto a WordPress.org.
  • Mejorado: «Integridad de archivos» ya no analiza Vigilante como un plugin normal, por lo que sus archivos no se incluyen dos veces en el informe; además, al actualizar, los propios archivos de Vigilante se eliminan de la lista de ignorados, donde podrían desactivar la nueva comprobación.
  • Mejorado: En una red multisitio ningún usuario puede ignorar en ningún sitio un hallazgo relacionado con los archivos propios de Vigilant. Si se borran los resultados del análisis sin disponer de derechos de red, dicho hallazgo se mantiene y la alerta correspondiente también se envía al correo electrónico de la administración de la red.

Para entradas anteriores del registro de cambios revisa el archivo changelog.txt.