Преминете към основното съдържание

Промени в лога на Captcha

Версия: 1.5.0 - Публикувана на 2026-05-22

  • Ново: Хардкоден ограничителен лимитер на заявки (rate limiter) — брои всяка GET и POST заявка към защитени от Captcha места (wp-login / register / lost-password / comments, WooCommerce my-account / checkout / pay-for-order, Ultimate Multisite checkout / inline-login) и отговаря с HTTP 429, заглавie Retry-After и рандомизиран спинг (tarpit sleep) (1–5 сек., с максимално ограничение от 15 сек.).
  • Ново: Настройки cap_rate_limit_tarpit_min / cap_rate_limit_tarpit_max за настройка на прозореца на спинг.
  • Ново: Филтър wu_cap_rate_limit_whitelist_ip за изключение на доверени IP диапазони.
  • Ново: Действие wu_cap_rate_limit_will_block, което се активира непосредствено преди изпращането на отговор с хард-стоп.
  • Ново: Детекция на client-IP устойчива на фалшиви данни (spoof-resistant). Captcha_Core::get_client_ip() (източникът на истината за ключовете на кувета на ограничението на заявки, captcha siteverify remoteip и хешовете на IP за статистика) сега прилага строго доверителна модел: REMOTE_ADDR е минималното ниво, CF-Connecting-IP се уважава само когато непосредственият пиър е вътре в текущ Cloudflare IP диапазон, а X-Forwarded-For се уважава само когато непосредственият пиър е в списъка с доверени прокси, зададен от администратора, като се извършва преминаване отдясно наляво, което пропуска доверени/CF хопове, преди да установи IP на посетителя.
  • Ново: Настройка cap_trust_cloudflare_headers (по подразбиране OFF) — възможност за доверие на CF-Connecting-IP при работа зад Cloudflare. Плъгинът включва запазен снимок (snapshot) на Cloudflare CIDR и го обновява седмично чрез wp-cron, като има и резервен план, ако обновяването се провали.
  • Ново: Настройка cap_trusted_proxies — текстова област за CIDR или чисти IP адреси (по един на ред, разрешени са # коментари), които изброяват вашите собствени фронт-лайн прокси / балансьори на натоварване. Без това X-Forwarded-For се игнорира, дори когато ограничението на заявки е активирано.
  • Ново: Автоматично откриване на вероятната конфигурация на Cloudflare / прокси при първо активиране, с известие в админ панела с един клик "Приложи откритите настройки". Плъгинът никога не презаписва запазените ви стойности; ако по-късното трафик покаже, че вашата конфигурация вече не съответства на реалността (напр. Cloudflare е променил CIDR диапазоните и вашият прокси CIDR вече е остарял), се появява известие за несъответствие, което не може да бъде игнорирано и показва препоръчителното актуализиране.
  • Поправено: Избледняващият режим вече не понижава тихо cap_security_level до FAST — нивото, зададено от администратора, се уважава. За сайтове, които искат персонализирана логика, е достъпен нов филтър wu_cap_server_security_level.
  • Поправено: Счетчикът за статистика rate_limits_triggered сега се увеличава при всяко блокиране, а не само на рядкия път за възстановяване след успешно действие.
  • Поправено: Captcha_Core::get_client_ip() сега е единственият източник на истината за атрибуцията на IP на посетителя през ограничението на заявки, доставчиците на Captcha (reCAPTCHA + hCaptcha siteverify) и статистиката — затваря вектор на фалшиви данни, при който заявките директно от източника, но с фалшиво заглавие CF-Connecting-IP, биха били групирани с фалшивия IP, вместо с реалния пиър.
  • Поправено: Ограничителният лимитер на заявки за класическия checkout на WooCommerce сега се активира на template_redirect (приоритет 1), вместо на woocommerce_before_checkout_form. Хукът на ниво форма никога не се активира, когато количката е празна, така че трафикът, който никога не добавя продукт, заобикаляше лимитера изцяло.
  • Поправено: Ограничителният лимитер на заявки за плащане по поръчка на WooCommerce сега се активира на template_redirect, вместо на woocommerce_before_pay_action. Последният се активира само след успешно изпълнение на wp_verify_nonce('woocommerce-pay'), което означава, че неавторизираните атакувачи (реален модел на заплаха) никога не активираха лимитера.
  • Поправено: Ограничителният лимитер на заявки за checkout на WooCommerce Store API (блоки) сега се активира на rest_pre_dispatch, вместо на woocommerce_store_api_checkout_update_order_from_request. Последният се активира само след като Store API валидира полетата на количката и фактурирането, така че неавторизираните ботове получаваха 400 от валидатора и никога не активираха лимитера.
  • Поправено: Ограничителният лимитер на заявки за inline-login на Ultimate Multisite сега се активира на wu_ajax_nopriv_wu_inline_login с приоритет 1 (и на съответния за вход на потребители) вместо на wu_before_inline_login. Последният се активира само след успешно изпълнение на check_ajax_referer('wu_checkout'), така че неавторизираните ботове без валиден wu_checkout nonce получаваха 403 и никога не активираха лимитера.
  • Поправено: Rate_Limiter::enforce() сега прилага защита "веднъж на заявка" (once-per-request), ключовената по surface|ip, така че горните хукове, които се активират два пъти при рендиране (особено wu_setup_checkout в Ultimate Multisite), вече не намаляват ефективния праг на ограничението на заявки.
  • Поправено: Портите на ограничение на заявки вече не консултираха Captcha_Core::is_whitelisted() (филтър wu_captcha_whitelisted). Този филтър сигнализира "captcha вече е обработен от друг ресурс" и е ортогонален на защитата от наводнение (flood protection) — интеграцията с WooCommerce го използваше, за да пропусне Captcha за входа на WordPress, когато беше присъстният Woo nonce, което се разнесе в броите на заявките и позволи на POST заявките на Woo да заобиколят лимитера. Единственият филтър, който сега прилага това заобикаляне, е специфичният за ограничението на заявки wu_cap_rate_limit_whitelist_ip.

Версия: 1.3.2 - Публикувана на 2026-01-27

  • Поправено: Виджетът Captcha не се рендира на checkout форми, използващи Elementor или други page builders.
  • Поправено: Кастомният елемент cap-widget е изтрит от санитаризацията на wp_kses().
  • Подобрено: Използване на съдържание, което може да бъде извикано (callable content) за полето Captcha на checkout, за да се заобиколи филтрирането на HTML.
  • Подобрено: JavaScript е опростено с резервен план за крайни случаи.

Версия: 1.3.1 - Публикувана на 2026-01-26

  • Поправено: Избледняващият режим на Captcha не решава автоматично на динамични checkout форми на Ultimate Multisite.
  • Подобрено: Скриптът за checkout на Captcha сега използва MutationObserver, за да открива динамично заредени виджети.
  • Подобрено: Добавена прекъсване на бутона за checkout, за да чака за токен преди изпращане.

Версия: 1.3.0 - Публикувана на 2026-01-27

  • Ново: Интеграция на WooCommerce Blocks checkout с прекъсване на извличане на Store API.
  • Ново: Поддръжка на избледняващ Captcha за WooCommerce checkout (hCaptcha invisible, reCAPTCHA v2 invisible, v3).
  • Ново: Самостоятелна страница за настройки за използване без Ultimate Multisite.
  • Ново: Jetpack Autoloader за предотвратяване на конфликти в зависимостите.
  • Поправено: hCaptcha не се рендира на динамичен checkout на Ultimate Multisite (съдържание, заредено с AJAX).
  • Поправено: Captcha не се обновява/сброява при грешки при валидиране на формата.
  • Поправено: hCaptcha не се показва на страницата WooCommerce checkout.
  • Поправено: Грешка "reCAPTCHA class not found" (добавена PHP библиотека google/recaptcha).
  • Подобрено: Откриване на грешки чрез WordPress хукове, MutationObserver и AJAX прекъсване.
  • Подобрено: Описанията на настройките сега включват URL адреси на dashboard за API ключове.

Версия: 1.2.2 - Публикувана на 2026-01-24

  • Поправено: Captcha не се показва на Ultimate Multisite Login Form Element (несъответствие в името на филтъра на формата).
  • Поправено: HTML на виджета Captcha е изтрит от санитаризацията на wp_kses().
  • Поправено: JavaScript селектори не намират форми с наклоненици в ID на елементите.
  • Добавен: Хук на филтър wu_kses_allowed_html за classaddons, за да се разширят разрешените HTML тагове.
  • Премахнато: JavaScript файлове с мъртъв код, заменени с скриптове, специфични за доставчика.

Версия: 1.2.1 - Публикувана на 2026-01-23

  • Поправено: Валидацията на токена на Captcha се проваля в мултисайт среди (сега използва трансценти на ниво мрежа).
  • Поправено: Captcha сега се рендира последователно за всички потребители, независимо от статуса на вход.
  • Поправено: Несъответствие между рендирането и валидирането на Captcha, което причиняваше провали на checkout.

Версия: 1.2.0 - Публикувана на 2026-01-21

  • Ново: Cap Captcha - самохостван proof-of-work captcha, активиран по подразбиране при активация.
  • Ново: Защита с нулева конфигурация - активирайте адъона и веднага сте защитени.
  • Ново: Полиморфна архитектура на доставчици на captcha за лесна разширимост.
  • Ново: Защита на checkout на WooCommerce Store API срещу атаки с тестване на карти.
  • Ново: Панел за статистика, показващ предизвикателства, верификации и блокирани атаки.
  • Ново: Предварително зададени нива на сигурност (Fast, Medium, Max) за трудност на Cap Captcha.
  • Ново: Абстрактни базови класове за доставчиците reCAPTCHA и hCaptcha.
  • Подобрено: Преструктуриран код в модулни класове на доставчици.
  • Подобрено: По-добра разделяне на отговорностите с посветен клас мениджър.
  • Поправено: Подобрения на сигурността за санитаризация на променливата $_SERVER.
  • Поправено: Конфигурация на PHPUnit тестове за конвенциите на именопис на WordPress.

Версия: 1.0.1 - Публикувана на 2025-09-28

  • Преименуван префикс на ultimate-multisite; актуализиран домейн на текста; повишаване на версията.