Captcha Changelog
Version: 1.5.0 - Released on 2026-05-22
- New: Hard-stop rate limiter — ਹਰ GET ਅਤੇ POST ਨੂੰ ਜੋ captcha-protected surfaces (wp-login / register / lost-password / comments, WooCommerce my-account / checkout / pay-for-order, Ultimate Multisite checkout / inline-login) 'ਤੇ ਹਿساب ਕਰਦਾ ਹੈ ਅਤੇ HTTP 429, ਇੱਕ
Retry-Afterheader, ਅਤੇ ਇੱਕ ਰੈਂਡਮ ਤੌਰ 'ਤੇ ਸੈਟ ਕੀਤਾ ਗਿਆ tarpit sleep (1–5s, ਜੋ 15s ਤੱਕ ਸੀਮਿਤ ਹੈ) ਨਾਲ ਜਵਾਬ ਦਿੰਦਾ ਹੈ। - New: tarpit window ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ
cap_rate_limit_tarpit_min/cap_rate_limit_tarpit_maxਸੈਟਿੰਗਾਂ। - New: ਭਰੋਸੇਮੰਦ IP range ਨੂੰ ਛੋਟ ਦੇਣ ਲਈ
wu_cap_rate_limit_whitelist_ipfilter। - New:
wu_cap_rate_limit_will_blockaction ਜੋ hard-stop response ਭੇਜਣ ਤੋਂ ਤੁਰੰਤ ਪਹਿਲਾਂ ਚੱਲਦਾ ਹੈ। - New: Spoof-resistant client-IP detection.
Captcha_Core::get_client_ip()(rate-limit bucket keys, captcha siteverifyremoteip, ਅਤੇ statistics IP hashes ਲਈ ਸੱਚਾ ਸਰੋਤ) ਹੁਣ ਇੱਕ ਸਖ਼ਤ ਭਰੋਸੇ ਦੇ ਮਾਡਲ ਨੂੰ ਲਾਗੂ ਕਰਦਾ ਹੈ: REMOTE_ADDR ਘੱਟੋ-ਘੱਟ ਹੈ,CF-Connecting-IPਸਿਰਫ਼ ਉਦੋਂ ਸਨਮਾਨਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਤੁਰੰਤ peer ਇੱਕ ਮੌਜੂਦਾ Cloudflare IP range ਦੇ ਅੰਦਰ ਹੋਵੇ, ਅਤੇX-Forwarded-Forਸਿਰਫ਼ ਉਦੋਂ ਸਨਮਾਨਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਤੁਰੰਤ peer ਐਡਮਿਨ-ਕਨਫਿਗਰੇਡ ਭਰੋਸੇਮੰਦ-proxy ਸੂਚੀ ਵਿੱਚ ਹੋਵੇ, ਜਿਸ ਵਿੱਚ ਇੱਕ ਸੱਜੇ ਤੋਂ ਖੱਬੇ ਵੱਲ ਚੱਲਣਾ ਸ਼ਾਮਲ ਹੈ ਜੋ ਭਰੋਸੇਮੰਦ/CF hops ਨੂੰ ਛੱਡ ਕੇ ਵਿਜ਼ਟਰ IP 'ਤੇ ਸਥਾਪਿਤ ਹੁੰਦਾ ਹੈ। - New:
cap_trust_cloudflare_headerssetting (default OFF) — Cloudflare ਦੇ ਪਿੱਛੇ ਹੋਣ 'ਤੇCF-Connecting-IP'ਤੇ ਭਰੋਸਾ ਕਰਨ ਲਈ ਆਪਟ-ਇਨ ਕਰੋ। ਪਲੱਗਇਨ ਇੱਕ ਬੰਡਲ ਕੀਤਾ Cloudflare CIDR snapshot ਨਾਲ ਆਉਂਦਾ ਹੈ ਅਤੇ ਜੇ refresh失败 ਹੋ ਜਾਂਦਾ ਹੈ ਤਾਂ ਇਸਨੂੰ ਹਫ਼ਤੇ ਵਿੱਚ ਇੱਕ ਵਾਰ wp-cron ਰਾਹੀਂ refresh ਕਰਦਾ ਹੈ। - New:
cap_trusted_proxiessetting — CIDRs ਜਾਂ ਸਿੱਧੇ IPs ਦਾ textarea (ਹਰ ਇੱਕ ਲਾਈਨ 'ਤੇ,#comments ਦੀ ਇਜਾਜ਼ਤ ਹੈ) ਜੋ ਤੁਹਾਡੇ ਆਪਣੇ ਫਰੰਟ-ਲਾਈਨ proxies / load-balancers ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਦਾ ਹੈ। ਇਸ ਤੋਂ ਬਿਨਾਂ,X-Forwarded-Forਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ ਭਾਵੇਂ rate limiter ਸੇਵਾਯੋਗ ਹੋਵੇ। - New: ਸੰਭਾਵੀ Cloudflare / proxy posture ਦਾ ਪਹਿਲੀ ਵਾਰ auto-detection, ਇੱਕ-ਕਲਿੱਕ "Apply detected settings" admin notice ਨਾਲ। ਪਲੱਗਇਨ ਕਦੇ ਵੀ ਤੁਹਾਡੇ ਸੇਵ ਕੀਤੇ ਮੁੱਲਾਂ ਨੂੰ ਓਵਰਰਾਈਟ ਨਹੀਂ ਕਰਦਾ; ਜੇ ਬਾਅਦ ਦਾ ਟ੍ਰੈਫਿਕ ਸੁਝਾਅ ਦਿੰਦਾ ਹੈ ਕਿ ਤੁਹਾਡਾ config ਹੁਣ ਹਕੀਕਤ ਨਾਲ ਨਹੀਂ ਮਿਲਦਾ (ਉਦਾਹਰਨ ਲਈ, Cloudflare ਨੇ CIDR range ਬਦਲ ਦਿੱਤੇ ਹਨ ਅਤੇ ਤੁਹਾਡਾ proxy CIDR ਹੁਣ ਪੁਰਾਣਾ ਹੈ), ਤਾਂ ਇੱਕ ਨਾ-dismissable mismatch notice ਸਿਫਾਰਸ਼ ਕੀਤਾ ਗਿਆ update ਦਿਖਾਉਂਦਾ ਹੈ।
- Fixed: Invisible mode ਹੁਣ
cap_security_levelਨੂੰ ਚੁੱਪਚਾਪ FAST 'ਤੇ ਡਾਊਨਗ੍ਰੇਡ ਨਹੀਂ ਕਰਦਾ — ਐਡਮਿਨ ਦਾ ਕਨਫਿਗਰੇਡ ਪੱਧਰ ਸਨਮਾਨਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਨਵਾਂwu_cap_server_security_levelfilter ਉਨ੍ਹਾਂ ਸਾਈਟਾਂ ਲਈ ਉਪਲਬਧ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਖਾਸ logic ਚਾਹੀਦਾ ਹੈ। - Fixed: Statistics
rate_limits_triggeredcounter ਹੁਣ ਹਰ block 'ਤੇ ਵਧਦਾ ਹੈ, ਸਿਰਫ਼ ਘੱਟ ਹੋਣ ਵਾਲੇ post-success backstop path 'ਤੇ ਨਹੀਂ। - Fixed:
Captcha_Core::get_client_ip()ਹੁਣ rate limiter, captcha providers (reCAPTCHA + hCaptchasiteverify), ਅਤੇ statistics ਵਿੱਚ ਵਿਜ਼ਟਰ IP attribution ਲਈ ਇੱਕੋ ਇੱਕ ਸੱਚਾ ਸਰੋਤ ਹੈ — ਇੱਕ spoofing vector ਨੂੰ ਬੰਦ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਸਿੱਧੇ origin-server requests ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਇੱਕ forgedCF-Connecting-IPheader ਸੀ, ਨੂੰ spoofed IP ਦੁਆਰਾ ਸਥਾਪਿਤ ਬਜਟ ਵਿੱਚ ਪਾ ਦਿੱਤਾ ਜਾਂਦਾ ਸੀ ਨਾ ਕਿ ਅਸਲ peer ਦੁਆਰਾ। - Fixed: WooCommerce classic checkout rate-limit gate ਹੁਣ
woocommerce_before_checkout_formਦੀ ਬਜਾਏtemplate_redirect(priority 1) 'ਤੇ ਚੱਲਦਾ ਹੈ। form-level hook ਕਦੇ ਨਹੀਂ ਚੱਲਦਾ ਜਦੋਂ cart ਖਾਲੀ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਕੋਈ ਵੀ ਟ੍ਰੈਫਿਕ ਜੋ ਕਦੇ product ਨਹੀਂ ਜੋੜਦਾ ਸੀ, ਉਹ limiter ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬਾਈਪਾਸ ਕਰ ਰਿਹਾ ਸੀ। - Fixed: WooCommerce pay-for-order rate-limit gate ਹੁਣ
woocommerce_before_pay_actionਦੀ ਬਜਾਏtemplate_redirect'ਤੇ ਚੱਲਦਾ ਹੈ। ਪਹਿਲਾ ਸਿਰਫ਼wp_verify_nonce('woocommerce-pay')ਸਫਲ ਹੋਣ ਤੋਂ ਬਾਅਦ ਚੱਲਦਾ ਹੈ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ unauthorized attackers (ਅਸਲ threat model) ਨੇ ਕਦੇ limiter ਨੂੰ trigger ਨਹੀਂ ਕੀਤਾ। - Fixed: WooCommerce Store API (blocks) checkout rate-limit gate ਹੁਣ
woocommerce_store_api_checkout_update_order_from_requestਦੀ ਬਜਾਏrest_pre_dispatch'ਤੇ ਚੱਲਦਾ ਹੈ। ਪਹਿਲਾ ਸਿਰਫ਼ Store API ਦੁਆਰਾ cart ਅਤੇ billing fields ਨੂੰ validate ਕਰਨ ਤੋਂ ਬਾਅਦ ਚੱਲਦਾ ਹੈ, ਇਸ ਲਈ unauthorized bots ਨੂੰ validator ਤੋਂ 400 ਮਿਲਦਾ ਸੀ ਅਤੇ ਕਦੇ limiter ਨੂੰ trigger ਨਹੀਂ ਕਰਦੇ ਸਨ। - Fixed: Ultimate Multisite inline-login rate-limit gate ਹੁਣ
wu_before_inline_loginਦੀ ਬਜਾਏwu_ajax_nopriv_wu_inline_loginpriority 1 'ਤੇ ਚੱਲਦਾ ਹੈ (ਅਤੇ logged-in mirror)। ਪਹਿਲਾ ਸਿਰਫ਼check_ajax_referer('wu_checkout')ਸਫਲ ਹੋਣ ਤੋਂ ਬਾਅਦ ਚੱਲਦਾ ਹੈ, ਇਸ ਲਈ unauthorized bots ਜਿਨ੍ਹਾਂ ਕੋਲ ਇੱਕ valid wu_checkout nonce ਨਹੀਂ ਸੀ, ਉਨ੍ਹਾਂ ਨੂੰ 403 ਮਿਲਦਾ ਸੀ ਅਤੇ ਕਦੇ limiter ਨੂੰ trigger ਨਹੀਂ ਕਰਦੇ ਸਨ। - Fixed:
Rate_Limiter::enforce()ਹੁਣsurface|ipਦੁਆਰਾ key ਕੀਤੇ ਇੱਕ once-per-request guard ਨੂੰ ਲਾਗੂ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ upstream hooks ਜੋ render ਪ੍ਰਤੀ ਦੋ ਵਾਰ ਚੱਲਦੇ ਹਨ (ਖਾਸ ਤੌਰ 'ਤੇ Ultimate Multisite ਵਿੱਚwu_setup_checkout) ਹੁਣ ਪ੍ਰਭਾਵੀ rate-limit threshold ਨੂੰ ਅੱਧਾ ਨਹੀਂ ਕਰਦੇ। - Fixed: Rate-limit surface gates ਹੁਣ
Captcha_Core::is_whitelisted()(wu_captcha_whitelistedfilter) ਨਾਲ ਸਲਾਹ ਨਹੀਂ ਲੈਂਦੇ। ਉਹ filter "captcha ਪਹਿਲਾਂ ਹੀ ਕਿਸੇ ਹੋਰ surface ਦੁਆਰਾ ਸੰਭਾਲਿਆ ਗਿਆ ਹੈ" ਦਾ ਸੰਕੇਤ ਦਿੰਦਾ ਹੈ ਅਤੇ flood protection ਨਾਲ ਅਲੱਗ ਹੈ — WooCommerce integration ਇਸਨੂੰ ਇੱਕ Woo nonce ਮੌਜੂਦ ਹੋਣ 'ਤੇ WordPress login captcha ਨੂੰ skip ਕਰਨ ਲਈ hook ਕਰ ਰਿਹਾ ਸੀ, ਜਿਸ ਨਾਲ rate counting ਵਿੱਚ ਗਲਤੀ ਹੋ ਗਈ ਅਤੇ Woo POSTs ਨੂੰ limiter ਤੋਂ ਬਚਾ ਦਿੱਤਾ। rate-limit-specificwu_cap_rate_limit_whitelist_ipfilter ਇੱਕੋ ਇੱਕ bypass ਹੈ ਜੋ ਹੁਣ ਲਾਗੂ ਹੁੰਦਾ ਹੈ।
Version: 1.3.2 - Released on 2026-01-27
- Fixed: Elementor ਜਾਂ ਹੋਰ page builders ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ checkout forms 'ਤੇ Cap widget render ਨਹੀਂ ਹੋ ਰਿਹਾ ਸੀ
- Fixed: cap-widget custom element ਨੂੰ wp_kses() sanitization ਦੁਆਰਾ strip ਕੀਤਾ ਜਾ ਰਿਹਾ ਸੀ
- Improved: HTML filtering ਨੂੰ ਬਾਈਪਾਸ ਕਰਨ ਲਈ checkout captcha field ਲਈ callable content ਦੀ ਵਰਤੋਂ ਕੀਤੀ
- Improved: edge cases ਲਈ fallback ਨਾਲ JavaScript ਨੂੰ ਸਰਲ ਬਣਾਇਆ
Version: 1.3.1 - Released on 2026-01-26
- Fixed: Cap Captcha invisible mode dynamic Ultimate Multisite checkout forms 'ਤੇ auto-solve ਨਹੀਂ ਹੋ ਰਿਹਾ ਸੀ
- Improved: Cap checkout script ਹੁਣ dynamically load ਹੋਣ ਵਾਲੇ widgets ਦਾ detection ਕਰਨ ਲਈ MutationObserver ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ
- Improved: submission ਤੋਂ ਪਹਿਲਾਂ token ਦਾ ਇੰਤਜ਼ਾਰ ਕਰਨ ਲਈ checkout button interception ਜੋੜਿਆ
Version: 1.3.0 - Released on 2026-01-27
- New: Store API fetch interception ਨਾਲ WooCommerce Blocks checkout integration
- New: WooCommerce checkout ਲਈ Invisible captcha support (hCaptcha invisible, reCAPTCHA v2 invisible, v3)
- New: Ultimate Multisite ਤੋਂ ਬਿਨਾਂ ਵਰਤੋਂ ਲਈ stand-alone settings page
- New: dependency conflict prevention ਲਈ Jetpack Autoloader
- Fixed: dynamic Ultimate Multisite checkout (AJAX-loaded content) 'ਤੇ hCaptcha render ਨਹੀਂ ਹੋ ਰਿਹਾ ਸੀ
- Fixed: form validation errors ਹੋਣ 'ਤੇ Captcha refresh/reset ਨਹੀਂ ਹੋ ਰਿਹਾ ਸੀ
- Fixed: WooCommerce checkout page 'ਤੇ hCaptcha ਨਹੀਂ ਦਿਖ ਰਿਹਾ ਸੀ
- Fixed: reCAPTCHA class not found error (google/recaptcha PHP library ਜੋੜੀ)
- Improved: WordPress hooks, MutationObserver, ਅਤੇ AJAX interception ਰਾਹੀਂ error detection
- Improved: Settings descriptions ਵਿੱਚ API keys ਲਈ dashboard URLs ਸ਼ਾਮਲ ਕੀਤੇ
Version: 1.2.2 - Released on 2026-01-24
- Fixed: Ultimate Multisite Login Form Element 'ਤੇ Captcha ਨਹੀਂ ਦਿਖ ਰਿਹਾ ਸੀ (form filter name mismatch)
- Fixed: Cap widget HTML ਨੂੰ wp_kses() sanitization ਦੁਆਰਾ strip ਕੀਤਾ ਜਾ ਰਿਹਾ ਸੀ
- Fixed: JavaScript selectors, element IDs ਵਿੱਚ slashes ਵਾਲੇ forms ਨੂੰ ਨਹੀਂ ਲੱਭ ਰਹੇ ਸਨ
- Added: classaddons ਲਈ ਸਨਮਾਨਿਤ HTML tags ਨੂੰ ਵਧਾਉਣ ਲਈ Filter hook
wu_kses_allowed_html - Removed: Dead code JavaScript files ਨੂੰ provider-specific scripts ਨਾਲ ਬਦਲਿਆ
Version: 1.2.1 - Released on 2026-01-23
- Fixed: multisite environments ਵਿੱਚ Cap Captcha token validation fail ਹੋ ਰਿਹਾ ਸੀ (ਹੁਣ network-wide transients ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ)
- Fixed: Captcha ਹੁਣ login status ਦੀ ਪਰਵਾਹ ਕੀਤੇ ਬਾਰੇ ਸਾਰੇ users ਲਈ ਲਗਾਤਾਰ render ਹੁੰਦਾ ਹੈ
- Fixed: captcha rendering ਅਤੇ validation ਵਿੱਚ mismatch ਕਾਰਨ checkout failures ਹੋ ਰਹੇ ਸਨ
Version: 1.2.0 - Released on 2026-01-21
- New: Cap Captcha - self-hosted proof-of-work captcha, activation 'ਤੇ default enable
- New: Zero-configuration protection - addon activate ਕਰੋ ਅਤੇ ਤੁਸੀਂ ਤੁਰੰਤ ਸੁਰੱਖਿਅਤ ਹੋ ਜਾਂਦੇ ਹੋ
- New: easy extensibility ਲਈ Polymorphic captcha provider architecture
- New: card testing attacks ਦੇ ਵਿਰੁੱਧ WooCommerce Store API checkout protection
- New: challenges, verifications, ਅਤੇ blocked attacks ਦਿਖਾਉਣ ਵਾਲਾ Statistics tracking dashboard
- New: Cap Captcha difficulty ਲਈ Security level presets (Fast, Medium, Max)
- New: reCAPTCHA ਅਤੇ hCaptcha providers ਲਈ Abstract base classes
- Improved: modular provider classes ਵਿੱਚ codebase ਨੂੰ refactor ਕੀਤਾ
- Improved: dedicated manager class ਨਾਲ concerns ਦੀ ਬਿਹਤਰ ਵੰਡ
- Fixed: $_SERVER variable sanitization ਲਈ Security improvements
- Fixed: WordPress naming conventions ਲਈ PHPUnit test configuration
Version: 1.0.1 - Released on 2025-09-28
- Prefix ਨੂੰ ultimate-multisite rename ਕੀਤਾ; text domain update ਕੀਤਾ; version bump।