Skip to content

Releases: soyunomas/Secure-Image-Sequence-CAPTCHA

v1.6.0: Lanzamiento de Seguridad y Fortalecimiento

Choose a tag to compare

@soyunomas soyunomas released this 17 Jul 11:06
56b49c6

1.6.0

La versión 1.6.0 parte de la 1.5.0 y reúne el nuevo protocolo seguro del desafío, el endurecimiento posterior, la renovación del conjunto visual y la internacionalización. La primera revisión de seguridad de 1.6.0 conservaba las 34 imágenes y mostraba 7 candidatas; el paquete final, manteniendo la versión 1.6.0, incorpora 40 imágenes y una cuadrícula de 9 candidatas.

Correcciones críticas de seguridad

  • Eliminada la resolución trivial del CAPTCHA mediante correlación del texto de la pregunta con los atributos alt, nombres de archivo y rutas visibles en el HTML.
  • Las imágenes se sirven mediante un endpoint opaco vinculado al desafío; el navegador no recibe nombres de objetos, categorías ni rutas originales.
  • Cada desafío queda ligado a una sesión anónima HttpOnly, al contexto del formulario y, cuando corresponde, al ID de la entrada.
  • El desafío se consume atómicamente en el primer intento, sea correcto o incorrecto, impidiendo reintentos, replay y ataques por enumeración.
  • Sustituido el uso de wp_hash por HMAC-SHA-256 con secreto del servidor y comparación en tiempo constante, apropiado para el pequeño espacio de soluciones.
  • La solución correcta deja de almacenarse en texto plano dentro del transitorio.
  • Añadidos límites independientes para generación, validación y descarga de imágenes del CAPTCHA.
  • Añadido un techo global por IP que no se puede eludir rotando la cookie de sesión anónima.
  • El límite de fallos de comentarios bloquea efectivamente nuevas solicitudes y responde con HTTP 429.
  • Corregida la confianza en cabeceras de proxy: solo se aceptan cuando REMOTE_ADDR pertenece a un CIDR de proxy configurado explícitamente.
  • La cadena X-Forwarded-For se resuelve de derecha a izquierda, evitando direcciones falsas antepuestas por el cliente.
  • Rechazados CIDR globales inseguros como 0.0.0.0/0 y ::/0.
  • Rechazadas las cadenas múltiples en cabeceras de proxy configuradas para contener una sola dirección.
  • Separados los fallos de CAPTCHA en comentarios de los contadores de bloqueo del inicio de sesión.
  • Bloqueados por defecto los comentarios anónimos por REST y XML-RPC cuando la protección de comentarios está activa, evitando el bypass del formulario web.
  • Corregido el callback de error XML-RPC para que sea públicamente invocable por WordPress.
  • Restringida a administradores con manage_options la gestión y asignación de categorías CAPTCHA personalizadas.
  • Añadida validación del MIME real, firma, tamaño, dimensiones y total de píxeles antes de decodificar imágenes personalizadas.
  • Excluido SVG como fuente del CAPTCHA; las imágenes personalizadas quedan limitadas a formatos ráster permitidos.

Imágenes y experiencia de uso

  • Sustituido el conjunto anterior de 34 imágenes por 40 ilustraciones semirrealistas coherentes, 10 en cada categoría de animales, frutas, objetos y vehículos.
  • Las 40 ilustraciones se generaron individualmente con un modelo generativo, tomando el estilo anterior como referencia.
  • Normalizadas todas las imágenes a PNG opaco de 256 × 256 píxeles, sin texto, logotipos ni marcas de agua.
  • Ampliado el desafío de 7 a 9 candidatas distintas en una cuadrícula 3 × 3.
  • Conservada la secuencia ordenada de respuesta de 4 imágenes sin duplicados.
  • La décima imagen de cada grupo introduce variación entre desafíos.
  • Añadidas transformaciones por desafío cuando PHP GD está disponible.
  • Añadida una mutación segura del flujo codificado como alternativa cuando PHP GD no está disponible.
  • Añadido manejo mediante teclado, foco visible, indicador del orden seleccionado, botón de reinicio y mensajes accesibles mediante aria-live.
  • Añadido límite de selección en el frontend para impedir más de cuatro elecciones.

Idiomas

  • Adoptado el inglés como idioma fuente y de reserva del plugin.
  • Añadidos catálogos completos para español, alemán y francés.
  • Traducidos los 40 nombres de las imágenes predefinidas.
  • Traducidas la pregunta, las instrucciones, la accesibilidad, los estados dinámicos de JavaScript, los errores y la página de ajustes.
  • Añadida reserva por familia de idioma para variantes regionales sin catálogo exacto, como es_MX, de_AT o fr_CA.
  • Las categorías personalizadas conservan como etiquetas los títulos definidos por el propietario en la biblioteca de medios.

Mantenimiento y compatibilidad

  • Conservadas las opciones existentes de la versión 1.5.0.
  • Restablecidas al modo seguro las configuraciones antiguas de cabeceras IP hasta que el administrador configure los CIDR de sus proxies reales.
  • Invalidados los desafíos pendientes de versiones anteriores durante la actualización.
  • Añadida limpieza horaria de marcadores antirrepetición.
  • Conservada la limpieza completa de opciones, transitorios y taxonomía al desinstalar.
  • Conservados archivos index.php defensivos en los directorios del plugin.
  • Añadidas pruebas unitarias y de integración para HMAC, replay, consumo atómico, límites, rotación de cookies, proxy spoofing, CIDR, imágenes, internacionalización, sintaxis PHP/JavaScript y arranque del plugin.
  • Protegidos los scripts PHP de prueba para que solo se ejecuten mediante CLI/phpdbg y respondan con 403 por HTTP.
  • Mantenida la compatibilidad mínima con WordPress 5.8 y PHP 7.4.

v1.5.0: Lanzamiento de Seguridad y Fortalecimiento

Choose a tag to compare

@soyunomas soyunomas released this 19 Aug 22:34
495b65a

Changelog v1.5.0

  • CORRECCIÓN DE SEGURIDAD: Corregida una vulnerabilidad de fuga de información (Information Disclosure) que exponía públicamente los nombres de las categorías del CAPTCHA a través de la API REST. El endpoint ha sido deshabilitado por defecto para prevenir la enumeración.

  • FORTALECIMIENTO DE SEGURIDAD (IP Spoofing): La lógica de detección de IP ha sido completamente reescrita para prevenir que un atacante pueda eludir un bloqueo falsificando cabeceras HTTP. La protección ahora es robusta incluso detrás de proxies inversos y CDNs como Cloudflare.

  • FORTALECIMIENTO DE SEGURIDAD (Hashed Solutions): Las soluciones correctas del CAPTCHA ahora se almacenan como hashes criptográficos (wp_hash) en la base de datos. Esto elimina el almacenamiento de respuestas en texto plano, protegiendo las soluciones incluso si la base de datos se viera comprometida.

  • MEJORA DE EXPERIENCIA (UX): Se ha añadido una herramienta de diagnóstico de IP en la página de ajustes. Esta herramienta ayuda a los administradores a seleccionar la fuente de IP correcta para su entorno de servidor, garantizando que el bloqueo de IP funcione correctamente.

  • MEJORA GENERAL: Añadida una rutina de limpieza completa en la desinstalación para eliminar los términos de la taxonomía y no dejar datos huérfanos en la base de datos.

  • MEJORA GENERAL (Hardening): Se han añadido archivos index.php vacíos en todos los directorios del plugin para prevenir el listado de directorios en servidores con una configuración de seguridad deficiente.

Versión 1.4.1: Actualización de Seguridad y Fiabilidad

Choose a tag to compare

@soyunomas soyunomas released this 19 Jul 19:47
1d51576

Corrección de Seguridad: Se ha fortalecido la lógica de validación del formulario de inicio de sesión para prevenir la enumeración de usuarios. En versiones anteriores, un atacante podía verificar la existencia de nombres de usuario sin necesidad de resolver el CAPTCHA. Esta actualización asegura que la validación del CAPTCHA sea el primer paso, neutralizando este vector de ataque y mejorando significativamente la protección contra intentos de acceso automatizados.

Mejora de Resiliencia (Hardening): El mecanismo "Fail-Safe" ha sido rediseñado. Ahora, si el CAPTCHA no puede generarse usando "Imágenes Personalizadas", el plugin hará un fallback automático y seguro para usar los "Conjuntos de Imágenes Predefinidos" si están disponibles. Esto mantiene la protección del formulario activa en todo momento y previene una posible Denegación de Servicio (DoS) lógica.

Version 1.4.0: Stability Fix & UX Improvements.

Choose a tag to compare

@soyunomas soyunomas released this 19 Jul 17:36
fc4d307
  • Corrección de Estabilidad: Solucionado un fallo que podía bloquear a los administradores fuera de su propio sitio si una categoría de imágenes personalizada no tenía el número mínimo de imágenes requerido.
  • Implementado Mecanismo "Fail-Safe": Si el CAPTCHA no se puede generar por un error de configuración (ej., no hay ninguna categoría válida), el plugin ahora permitirá que los formularios (inicio de sesión, registro) se envíen, previniendo el bloqueo del sitio y priorizando el acceso del administrador.
  • Mejora de UX (Avisos Inteligentes): El plugin ahora muestra avisos contextuales en la página de Ajustes: un error (rojo) si el CAPTCHA está inactivo por falta de imágenes, y una advertencia (amarillo) si algunas categorías están mal configuradas y están siendo ignoradas.
  • Mejora de UX (Guía Contextual): Añadido un aviso informativo en la página "Medios -> Categorías CAPTCHA" para recordar al administrador el requisito mínimo de 6 imágenes.
  • Refactorización de la Lógica de Generación: La selección de imágenes personalizadas ahora filtra proactivamente las categorías inválidas, asegurando que el CAPTCHA siempre use un conjunto de imágenes válido si existe alguno, mejorando la robustez general.

Versión 1.3.2 - Igualar imágenes 75x75

Choose a tag to compare

@soyunomas soyunomas released this 05 May 20:13
4d8673a

Esta es la versión estable 1.3.2 de Secure Image Sequence CAPTCHA.

Cambios Principales:

Corrección: Se han escalado todas las imagenes contenidas a 75x75. Se ha añadido que se aconsejan imágenes de menos de 100x100.
Para detalles completos sobre la instalación, configuración y uso, consulta el archivo README.md.

Compatibilidad:

Requiere WordPress 5.8+
Probado hasta WordPress 6.5
Requiere PHP 7.4+

Versión 1.3.1 - Corrección Contador Taxonomía

Choose a tag to compare

@soyunomas soyunomas released this 02 May 00:42
73390fe

Esta es la versión estable 1.3.1 de Secure Image Sequence CAPTCHA.

Cambios Principales:

  • Corrección: Mostrar correctamente el número de imágenes asociadas en la columna "Image Count" en la pantalla de administración de Medios > Categorías CAPTCHA.
  • Ajuste: Refinamientos menores de código.

Para detalles completos sobre la instalación, configuración y uso, consulta el archivo README.md.

Compatibilidad:

  • Requiere WordPress 5.8+
  • Probado hasta WordPress 6.5
  • Requiere PHP 7.4+