Дневник на промени за Captcha
Верзија: 1.5.0 - Објавено на 2026-05-22
- Ново: Ограничувач на стапка со тврдо стопирање — го брои секое GET и POST на површини заштитени со captcha (wp-login / register / lost-password / comments, WooCommerce my-account / checkout / pay-for-order, Ultimate Multisite checkout / inline-login) и одговара со HTTP 429,
Retry-Afterheader и случајно tarpit-задржување (1–5s, со тврда горна граница од 15s). - Ново: Поставки
cap_rate_limit_tarpit_min/cap_rate_limit_tarpit_maxза нагодување на tarpit-прозорецот. - Ново: Филтер
wu_cap_rate_limit_whitelist_ipза изземање доверливи IP-опсези. - Ново: Акција
wu_cap_rate_limit_will_blockшто се активира непосредно пред да се испрати одговорот со тврдо стопирање. - Ново: Детекција на IP на клиент отпорна на лажирање.
Captcha_Core::get_client_ip()(изворот на вистината за клучеви на rate-limit bucket, captcha siteverifyremoteipи IP-хешови за статистика) сега спроведува строг модел на доверба: REMOTE_ADDR е основата,CF-Connecting-IPсе почитува само кога непосредниот peer е во тековен Cloudflare IP-опсег, аX-Forwarded-Forсе почитува само кога непосредниот peer е во администраторски конфигурираната листа на доверливи proxy, со одење оддесно налево што ги прескокнува доверливите/CF скокови пред да се утврди IP-адресата на посетителот. - Ново: Поставка
cap_trust_cloudflare_headers(стандардно OFF) — овозможете доверба воCF-Connecting-IPкога сте зад Cloudflare. plugin-от испорачува вграден Cloudflare CIDR snapshot и го освежува неделно преку wp-cron со вграден fallback ако освежувањето не успее. - Ново: Поставка
cap_trusted_proxies— textarea со CIDR-и или голи IP-адреси (една по ред, дозволени се#коментари) што ги наведува вашите сопствени предни proxy / load-balancer-и. Без ова,X-Forwarded-Forсе игнорира дури и кога ограничувачот на стапка е овозможен. - Ново: Автоматска детекција при прво овозможување на веројатна Cloudflare / proxy поставеност со администраторско известување „Примени ги детектираните поставки“ со еден клик. plugin-от нико гаш не ги пребришува вашите зачувани вредности; ако последователниот сообраќај сугерира дека вашата конфигурација повеќе не се совпаѓа со реалноста (на пр. Cloudflare ги сменил CIDR-опсезите и вашиот proxy CIDR сега е застарен), се прикажува известување за несовпаѓање што не може да се отфрли со препорачаното ажурирање.
- Поправено: Невидливиот режим повеќе не го намалува тивко
cap_security_levelна FAST — се почитува конфигурираното ниво на администраторот. Достапен е нов филтерwu_cap_server_security_levelза сајтови што сакаат сопствена логика. - Поправено: Бројачот за статистика
rate_limits_triggeredсега се зголемува при секое блокирање, не само на ретката backstop патека по успех. - Поправено:
Captcha_Core::get_client_ip()сега е единствениот извор на вистината за припишување на IP на посетител низ ограничувачот на стапка, captcha providers (reCAPTCHA + hCaptchasiteverify) и статистиката — затворајќи вектор за лажирање каде што директни барања до origin-server со фалсификуванCF-Connecting-IPheader би биле групирани според лажираната IP наместо според вистинскиот peer. - Поправено: Портата за ограничување на стапка на WooCommerce classic checkout сега се активира на
template_redirect(priority 1) наместо наwoocommerce_before_checkout_form. Hook-от на ниво на form никогаш не се активира кога количката е празна, па flood сообраќајот што никогаш не додава производ целосно го заобиколуваше ограничувачот. - Поправено: Портата за ограничување на стапка на WooCommerce pay-for-order сега се активира на
template_redirectнаместо наwoocommerce_before_pay_action. Второто се активира само откакоwp_verify_nonce('woocommerce-pay')ќе успее, што значи дека unauth напаѓачите (вистинскиот threat model) никогаш не го активираа ограничувачот. - Поправено: Портата за ограничување на стапка на WooCommerce Store API (blocks) checkout сега се активира на
rest_pre_dispatchнаместо наwoocommerce_store_api_checkout_update_order_from_request. Второто се активира само откако Store API ќе ги валидира количката и полињата за наплата, па unauth ботовите добиваа 400 од валидаторот и никогаш не го активираа ограничувачот. - Поправено: Портата за ограничување на стапка на Ultimate Multisite inline-login сега се активира на
wu_ajax_nopriv_wu_inline_loginpriority 1 (и logged-in mirror) наместо наwu_before_inline_login. Второто се активира само откакоcheck_ajax_referer('wu_checkout')ќе успее, па unauth ботовите без валиден wu_checkout nonce добиваа 403 и никогаш не го активираа ограничувачот. - Поправено:
Rate_Limiter::enforce()сега применува заштита еднаш по барање клучирана споредsurface|ip, така што upstream hooks што се активираат двапати по render (особеноwu_setup_checkoutво Ultimate Multisite) повеќе не го преполовуваат ефективниот праг за ограничување на стапка. - Поправено: Портите за површини со ограничување на стапка повеќе не го консултираат
Captcha_Core::is_whitelisted()(филтерwu_captcha_whitelisted). Тој филтер сигнализира „captcha веќе е обработена од друга површина“ и е ортогонален на заштитата од flood — WooCommerce интеграцијата го користеше за да ја прескокне WordPress login captcha кога беше присутен Woo nonce, што се прелеваше во броењето на стапката и им дозволуваше на Woo POST-овите да го избегнат ограничувачот. Филтерот специфичен за ограничување на стапкаwu_cap_rate_limit_whitelist_ipе единственото заобиколување што сега се применува.
Верзија: 1.3.2 - Објавено на 2026-01-27
- Поправено: Cap widget не се прикажуваше на checkout forms што користат Elementor или други page builders
- Поправено: cap-widget custom element се отстрануваш е од wp_kses() sanitization
- Подобрено: Се користи callable content за checkout captcha field за да се заобиколи HTML filtering
- Подобрено: Поедноставен JavaScript со fallback за гранични случаи
Верзија: 1.3.1 - Објавено на 2026-01-26
- Поправено: Невидливиот режим на Cap Captcha не се решаваше автоматски на динамички Ultimate Multisite checkout forms
- Подобрено: Cap checkout script сега користи MutationObserver за детектирање динамички вчитани widgets
- Подобрено: Додадено е пресретнување на checkout button за да се почека token пред поднесување
Version: 1.3.0 - Објавено на 2026-01-27
- Ново: WooCommerce Blocks интеграција за checkout со Store API fetch пресретнување
- Ново: Поддршка за невидлива captcha за WooCommerce checkout (hCaptcha invisible, reCAPTCHA v2 invisible, v3)
- Ново: Самостојна страница за поставки за користење без Ultimate Multisite
- Ново: Jetpack Autoloader за спречување конфликти на зависности
- Поправено: hCaptcha не се прикажуваше на динамички Ultimate Multisite checkout (содржина вчитана преку AJAX)
- Поправено: Captcha не се освежуваше/ресетираше кога се појавуваат грешки при валидација на формулар
- Поправено: hCaptcha не се прикажуваше на WooCommerce checkout страница
- Поправено: Грешка „reCAPTCHA class not found“ (додадена google/recaptcha PHP библиотека)
- Подобрено: Откривање грешки преку WordPress куки, MutationObserver и AJAX пресретнување
- Подобрено: Описите на поставките сега вклучуваат Dashboard URL-адреси за API клучеви
Version: 1.2.2 - Објавено на 2026-01-24
- Поправено: Captcha не се прикажуваше на Ultimate Multisite Login Form Element (несовпаѓање на името на филтерот за формулар)
- Поправено: HTML-от на Cap widget се отстрануваше со wp_kses() санитизација
- Поправено: JavaScript селекторите не наоѓаа формулари со коси црти во ID-ата на елементите
- Додадено: Filter hook
wu_kses_allowed_htmlза classaddons да ги прошируваат дозволените HTML ознаки - Отстрането: Неактивни JavaScript датотеки заменети со скрипти специфични за провајдер
Version: 1.2.1 - Објавено на 2026-01-23
- Поправено: Валидацијата на Cap Captcha токени не успеваше во multisite околини (сега користи network-wide transients)
- Поправено: Captcha сега се прикажува доследно за сите корисници без разлика на статусот на најава
- Поправено: Несовпаѓање помеѓу прикажување и валидација на captcha што предизвикуваше неуспеси при checkout
Version: 1.2.0 - Објавено на 2026-01-21
- Ново: Cap Captcha - самостојно хостирана proof-of-work captcha, овозможена стандардно при активирање
- Ново: Заштита без конфигурација - активирајте го addon и веднаш сте заштитени
- Ново: Полиморфна архитектура на captcha провајдер за лесно проширување
- Ново: WooCommerce Store API checkout заштита од напади со тестирање картички
- Ново: Dashboard за следење статистика што прикажува предизвици, верификации и блокирани напади
- Ново: Претпоставени безбедносни нивоа (Fast, Medium, Max) за тежина на Cap Captcha
- Ново: Апстрактни базни класи за reCAPTCHA и hCaptcha провајдери
- Подобрено: Рефакторирана кодна база во модуларни класи на провајдери
- Подобрено: Подобра поделба на одговорности со посветена manager класа
- Fixed: Security improvements for $_SERVER variable sanitization
- Поправено: PHPUnit тест-конфигурација за WordPress конвенции за именување
Version: 1.0.1 - Објавено на 2025-09-28
- Преименуван префикс во ultimate-multisite; ажуриран text domain; зголемена верзија.