Пређи на главни садржај

Дневник измена за 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-After header-ом и насумичним tarpit чекањем (1–5s, строго ограничено на 15s).
  • Ново: cap_rate_limit_tarpit_min / cap_rate_limit_tarpit_max подешавања за прилагођавање tarpit прозора.
  • Ново: wu_cap_rate_limit_whitelist_ip filter за изузимање поузданих IP опсега.
  • Ново: wu_cap_rate_limit_will_block action који се покреће непосредно пре слања строгог одговора.
  • Ново: Детекција IP адресе клијента отпорна на лажирање. Captcha_Core::get_client_ip() (извор истине за кључеве rate-limit корпи, captcha siteverify remoteip и 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 снимак и освежава га недељно преко wp-cron-а, уз уграђену резерву ако освежавање не успе.
  • Ново: cap_trusted_proxies подешавање — textarea за CIDR-ове или саме IP адресе (једна по реду, # коментари дозвољени) које наводе ваше сопствене прве proxy-је / балансере оптерећења. Без овога, X-Forwarded-For се игнорише чак и када је ограничавач стопе омогућен.
  • Ново: Аутоматско откривање вероватног Cloudflare / proxy стања при првом омогућавању, са администраторским обавештењем „Примени откривена подешавања” једним кликом. Plugin никада не преписује ваше сачуване вредности; ако накнадни саобраћај сугерише да се ваша конфигурација више не поклапа са стварношћу (нпр. Cloudflare је променио CIDR опсеге, а ваш proxy CIDR је сада застарео), појављује се обавештење о неподударању које се не може одбацити, са препорученим ажурирањем.
  • Исправљено: Невидљиви режим више не спушта тихо cap_security_level на FAST — поштује се ниво који је администратор подесио. Нови wu_cap_server_security_level filter доступан је за сајтове који желе прилагођену логику.
  • Исправљено: Бројач статистике rate_limits_triggered сада се увећава при сваком блокирању, не само на реткој резервној путањи после успеха.
  • Исправљено: Captcha_Core::get_client_ip() је сада једини извор истине за приписивање IP адресе посетиоца кроз ограничавач стопе, captcha провајдере (reCAPTCHA + hCaptcha siteverify) и статистику — затварајући вектор лажирања где би директни захтеви ка изворном серверу са фалсификованим CF-Connecting-IP header-ом били смештени у корпу према лажираној IP адреси уместо према стварном peer-у.
  • Исправљено: WooCommerce classic checkout rate-limit капија сада се покреће на template_redirect (приоритет 1) уместо на woocommerce_before_checkout_form. Hook на нивоу обрасца се никада не покреће када је корпа празна, па је flood саобраћај који никада не дода производ у потпуности заобилазио ограничавач.
  • Исправљено: WooCommerce pay-for-order rate-limit капија сада се покреће на template_redirect уместо на woocommerce_before_pay_action. Ово друго се покреће тек након што wp_verify_nonce('woocommerce-pay') успе, што значи да неаутентификовани нападачи (стварни модел претње) никада нису активирали ограничавач.
  • Исправљено: WooCommerce Store API (блокови) checkout rate-limit капија сада се покреће на rest_pre_dispatch уместо на woocommerce_store_api_checkout_update_order_from_request. Ово друго се покреће тек након што Store API валидира корпу и поља за наплату, па су неаутентификовани ботови добијали 400 од валидатора и никада нису активирали ограничавач.
  • Исправљено: Ultimate Multisite inline-login rate-limit капија сада се покреће на wu_ajax_nopriv_wu_inline_login приоритет 1 (и logged-in mirror) уместо на wu_before_inline_login. Ово друго се покреће тек након што check_ajax_referer('wu_checkout') успе, па су неаутентификовани ботови без важећег wu_checkout nonce-а добијали 403 и никада нису активирали ограничавач.
  • Исправљено: Rate_Limiter::enforce() сада примењује заштиту једном по захтеву, кључану преко surface|ip, тако да upstream hook-ови који се покрећу два пута по рендеровању (нарочито wu_setup_checkout у Ultimate Multisite) више не преполовљују ефективни праг ограничења стопе.
  • Исправљено: Rate-limit површинске капије више не консултују Captcha_Core::is_whitelisted() (wu_captcha_whitelisted filter). Тај filter сигнализира „captcha је већ обрађена другом површином” и независан је од заштите од flood-а — WooCommerce интеграција га је качила да прескочи WordPress login captcha када је Woo nonce присутан, што се преливало у бројање стопе и омогућавало Woo POST-овима да избегну ограничавач. Rate-limit-специфични wu_cap_rate_limit_whitelist_ip filter је једино заобилажење које се сада примењује.

Верзија: 1.3.2 - Објављено 2026-01-27

  • Исправљено: Cap виџет се није приказивао на checkout обрасцима који користе Elementor или друге page builder-е
  • Исправљено: cap-widget прилагођени елемент је уклањан wp_kses() санитизацијом
  • Побољшано: Користи callable садржај за checkout captcha поље како би се заобишло HTML филтрирање
  • Побољшано: Поједностављен JavaScript са резервом за рубне случајеве

Верзија: 1.3.1 - Објављено 2026-01-26

  • Исправљено: Cap Captcha невидљиви режим се није аутоматски решавао на динамичким Ultimate Multisite checkout обрасцима
  • Побољшано: Cap checkout скрипта сада користи MutationObserver за откривање динамички учитаних виџета
  • Побољшано: Додато пресретање checkout дугмета како би се сачекао token пре слања

Верзија: 1.3.0 - Објављено 2026-01-27

  • Ново: Интеграција WooCommerce Blocks наплате са пресретањем Store API fetch
  • Ново: Подршка за невидљиви captcha за WooCommerce наплату (hCaptcha невидљиви, reCAPTCHA v2 невидљиви, v3)
  • Ново: Самостална страница подешавања за коришћење без Ultimate Multisite
  • Ново: Jetpack Autoloader за спречавање сукоба зависности
  • Исправљено: hCaptcha се не приказује на динамичкој Ultimate Multisite наплати (садржај учитан преко AJAX-а)
  • Исправљено: Captcha се не освежава/ресетује када дође до грешака у валидацији обрасца
  • Исправљено: hCaptcha се не приказује на WooCommerce страници наплате
  • Исправљено: Грешка да reCAPTCHA класа није пронађена (додата google/recaptcha PHP библиотека)
  • Побољшано: Откривање грешака путем WordPress hook-ова, MutationObserver-а и AJAX пресретања
  • Побољшано: Описи подешавања сада укључују Dashboard URL-ове за API кључеве

Верзија: 1.2.2 - Објављено 2026-01-24

  • Исправљено: Captcha се не приказује на Ultimate Multisite елементу обрасца за пријаву (неслагање назива филтера обрасца)
  • Исправљено: HTML Cap widget-а се уклања wp_kses() санитизацијом
  • Исправљено: JavaScript селектори не проналазе обрасце са косим цртама у ID-јевима елемената
  • Додато: Filter hook wu_kses_allowed_html да classaddons прошире дозвољене HTML тагове
  • Уклоњено: Застареле JavaScript датотеке замењене скриптама специфичним за провајдера

Верзија: 1.2.1 - Објављено 2026-01-23

  • Исправљено: Валидација Cap Captcha токена не успева у multisite окружењима (сада користи transient-е на нивоу мреже)
  • Исправљено: Captcha се сада доследно приказује за све кориснике без обзира на статус пријаве
  • Исправљено: Неслагање између приказивања captcha и валидације које је изазивало неуспехе наплате

Верзија: 1.2.0 - Објављено 2026-01-21

  • Ново: Cap Captcha - самохостовани proof-of-work captcha, подразумевано омогућен при активацији
  • Ново: Заштита без конфигурације - активирајте додатак и одмах сте заштићени
  • Ново: Полиморфна архитектура captcha провајдера за лако проширивање
  • Ново: WooCommerce Store API заштита наплате од напада тестирања картица
  • Ново: Dashboard за праћење статистике који приказује изазове, верификације и блокиране нападе
  • Ново: Унапред подешени нивои безбедности (брзо, средње, максимално) за тежину Cap Captcha
  • Ново: Апстрактне основне класе за reCAPTCHA и hCaptcha провајдере
  • Побољшано: Рефакторисана база кода у модуларне класе провајдера
  • Побољшано: Боље раздвајање одговорности уз наменску manager класу
  • Fixed: Security improvements for $_SERVER variable sanitization
  • Исправљено: PHPUnit тест конфигурација за WordPress конвенције именовања

Верзија: 1.0.1 - Објављено 2025-09-28

  • Преименован префикс у ultimate-multisite; ажуриран text domain; повећање верзије.