Rexistro de cambios de Captcha
Versión: 1.5.0 - Publicada o 2026-05-22
- Novo: Limitador de taxa con parada dura — conta cada GET e POST nas superficies protexidas por captcha (wp-login / rexistro / contrasinal perdido / comentarios, WooCommerce my-account / checkout / pay-for-order, checkout / inline-login de Ultimate Multisite) e responde con HTTP 429, un
Retry-Afterheader e unha pausa tarpit aleatorizada (1–5 s, cun límite duro de 15 s). - Novo: axustes
cap_rate_limit_tarpit_min/cap_rate_limit_tarpit_maxpara axustar a xanela tarpit. - Novo: filtro
wu_cap_rate_limit_whitelist_ippara eximir rangos de IP de confianza. - Novo: acción
wu_cap_rate_limit_will_blockque se dispara inmediatamente antes de enviar a resposta de parada dura. - Novo: detección de IP de cliente resistente á suplantación.
Captcha_Core::get_client_ip()(a fonte de verdade para as claves de bucket de límite de taxa,remoteipde siteverify de captcha e hashes de IP de estatísticas) agora aplica un modelo de confianza estrito: REMOTE_ADDR é a base,CF-Connecting-IPsó se respecta cando o par inmediato está dentro dun rango de IP actual de Cloudflare, eX-Forwarded-Forsó se respecta cando o par inmediato está na lista de proxies de confianza configurada polo administrador, cun percorrido de dereita a esquerda que omite saltos de confianza/CF antes de fixar a IP do visitante. - Novo: axuste
cap_trust_cloudflare_headers(desactivado por defecto) — activa a confianza enCF-Connecting-IPcando esteas detrás de Cloudflare. O plugin inclúe unha instantánea agrupada de CIDR de Cloudflare e actualízaa semanalmente vía wp-cron cunha alternativa agrupada se falla a actualización. - Novo: axuste
cap_trusted_proxies— área de texto de CIDR ou IP simples (unha por liña, comentarios con#permitidos) que lista os teus propios proxies / balanceadores de carga de primeira liña. Sen isto,X-Forwarded-Forignórase mesmo cando o limitador de taxa está activado. - Novo: autodetección ao activar por primeira vez dunha probable postura de Cloudflare / proxy cun aviso de administrador "Aplicar axustes detectados" dun só clic. O plugin nunca sobrescribe os teus valores gardados; se o tráfico posterior suxire que a túa configuración xa non coincide coa realidade (por exemplo, Cloudflare cambiou rangos CIDR e o teu CIDR de proxy quedou obsoleto), móstrase un aviso de discrepancia non descartable coa actualización recomendada.
- Corrixido: o modo invisible xa non degrada silenciosamente
cap_security_levela FAST — respéctase o nivel configurado polo administrador. Hai un novo filtrowu_cap_server_security_leveldispoñible para sitios que queiran lóxica personalizada. - Corrixido: o contador de estatísticas
rate_limits_triggeredagora increméntase en cada bloqueo, non só na rara ruta de respaldo posterior ao éxito. - Corrixido:
Captcha_Core::get_client_ip()agora é a única fonte de verdade para a atribución da IP do visitante en todo o limitador de taxa, provedores de captcha (reCAPTCHA + hCaptchasiteverify) e estatísticas — pechando un vector de suplantación no que solicitudes directas ao servidor de orixe que levaban unCF-Connecting-IPheader falsificado serían agrupadas pola IP suplantada en vez de polo par real. - Corrixido: a porta de límite de taxa do checkout clásico de WooCommerce agora dispárase en
template_redirect(prioridade 1) en vez de enwoocommerce_before_checkout_form. O hook a nivel de formulario nunca se dispara cando o carro está baleiro, polo que o tráfico de inundación que nunca engade un produto estaba eludindo por completo o limitador. - Corrixido: a porta de límite de taxa de pay-for-order de WooCommerce agora dispárase en
template_redirecten vez de enwoocommerce_before_pay_action. Este último só se dispara despois de quewp_verify_nonce('woocommerce-pay')teña éxito, o que significa que atacantes non autenticados (o modelo de ameaza real) nunca activaban o limitador. - Corrixido: a porta de límite de taxa do checkout de WooCommerce Store API (bloques) agora dispárase en
rest_pre_dispatchen vez de enwoocommerce_store_api_checkout_update_order_from_request. Este último só se dispara despois de que Store API valide o carro e os campos de facturación, polo que os bots non autenticados recibían un 400 do validador e nunca facían saltar o limitador. - Corrixido: a porta de límite de taxa do inline-login de Ultimate Multisite agora dispárase en
wu_ajax_nopriv_wu_inline_loginprioridade 1 (e o espello para usuarios conectados) en vez de enwu_before_inline_login. Este último só se dispara despois de quecheck_ajax_referer('wu_checkout')teña éxito, polo que os bots non autenticados sen un nonce wu_checkout válido recibían un 403 e nunca facían saltar o limitador. - Corrixido:
Rate_Limiter::enforce()agora aplica unha garda dunha vez por solicitude baseada ensurface|ip, polo que os hooks ascendentes que se disparan dúas veces por renderización (en particularwu_setup_checkouten Ultimate Multisite) xa non reducen á metade o limiar efectivo do límite de taxa. - Corrixido: as portas de superficie de límite de taxa xa non consultan
Captcha_Core::is_whitelisted()(filtrowu_captcha_whitelisted). Ese filtro indica "captcha xa xestionado por outra superficie" e é ortogonal á protección contra inundacións — a integración de WooCommerce enganchábao para omitir o captcha de inicio de sesión de WordPress cando había un nonce de Woo presente, o que se filtraba ao reconto de taxa e permitía que os POST de Woo evitasen o limitador. O filtro específico de límite de taxawu_cap_rate_limit_whitelist_ipé a única omisión que agora se aplica.
Versión: 1.3.2 - Publicada o 2026-01-27
- Corrixido: o widget de Cap non se renderizaba nos formularios de checkout que usaban Elementor ou outros construtores de páxinas
- Corrixido: o elemento personalizado cap-widget era eliminado pola sanitización de wp_kses()
- Mellorado: uso de contido invocable para o campo de captcha de checkout para evitar o filtrado HTML
- Mellorado: JavaScript simplificado con alternativa para casos límite
Versión: 1.3.1 - Publicada o 2026-01-26
- Corrixido: o modo invisible de Cap Captcha non se resolvía automaticamente nos formularios dinámicos de checkout de Ultimate Multisite
- Mellorado: o script de checkout de Cap agora usa MutationObserver para detectar widgets cargados dinamicamente
- Mellorado: engadida interceptación do botón de checkout para agardar polo token antes do envío
Version: 1.3.0 - Publicada o 2026-01-27
- Novo: integración do checkout de WooCommerce Blocks con interceptación de fetch da Store API
- Novo: compatibilidade con captcha invisible para o checkout de WooCommerce (hCaptcha invisible, reCAPTCHA v2 invisible, v3)
- Novo: páxina de axustes independente para usar sen Ultimate Multisite
- Novo: Jetpack Autoloader para previr conflitos de dependencias
- Corrixido: hCaptcha non se renderizaba no checkout dinámico de Ultimate Multisite (contido cargado por AJAX)
- Corrixido: o Captcha non se actualizaba/restablecía cando se producían erros de validación do formulario
- Corrixido: hCaptcha non se mostraba na páxina de checkout de WooCommerce
- Corrixido: erro de clase reCAPTCHA non atopada (engadida a biblioteca PHP google/recaptcha)
- Mellorado: detección de erros mediante hooks de WordPress, MutationObserver e interceptación AJAX
- Mellorado: as descricións dos axustes agora inclúen URLs do dashboard para claves API
Version: 1.2.2 - Publicada o 2026-01-24
- Corrixido: o Captcha non se amosaba no Ultimate Multisite Login Form Element (discordancia no nome do filtro do formulario)
- Corrixido: o HTML do widget Cap era eliminado pola sanitización de wp_kses()
- Corrixido: os selectores de JavaScript non atopaban formularios con barras nos ID dos elementos
- Engadido: hook de filtro
wu_kses_allowed_htmlpara que os classaddons amplíen as etiquetas HTML permitidas - Eliminado: ficheiros JavaScript de código morto substituídos por scripts específicos do provedor
Version: 1.2.1 - Publicada o 2026-01-23
- Corrixido: a validación do token de Cap Captcha fallaba en contornas multisite (agora usa transients a nivel de rede)
- Corrixido: o Captcha agora renderízase de maneira consistente para todos os usuarios independentemente do estado de inicio de sesión
- Corrixido: discordancia entre a renderización e a validación do captcha que provocaba fallos no checkout
Version: 1.2.0 - Publicada o 2026-01-21
- Novo: Cap Captcha - captcha de proba de traballo autoaloxado, activado por defecto na activación
- Novo: protección sen configuración - activa o addon e quedas protexido inmediatamente
- Novo: arquitectura polimórfica de provedores de captcha para unha extensibilidade doada
- Novo: protección do checkout da WooCommerce Store API contra ataques de probas de tarxetas
- Novo: dashboard de seguimento de estatísticas que mostra desafíos, verificacións e ataques bloqueados
- Novo: predefinicións de nivel de seguridade (Rápido, Medio, Máximo) para a dificultade de Cap Captcha
- Novo: clases base abstractas para provedores de reCAPTCHA e hCaptcha
- Mellorado: base de código refactorizada en clases modulares de provedores
- Mellorado: mellor separación de responsabilidades cunha clase de xestor dedicada
- Fixed: Security improvements for $_SERVER variable sanitization
- Corrixido: configuración de probas PHPUnit para as convencións de nomes de WordPress
Version: 1.0.1 - Publicada o 2025-09-28
- Renomear o prefixo a ultimate-multisite; actualizar o dominio de texto; incremento de versión.