Captcha Änderungsprotokoll
Version: 1.5.0 - Veröffentlicht am 2026-05-22
- Neu: Hard-Stop-Rate-Limiter — zählt jedes GET und POST auf Captcha-geschützten Oberflächen (wp-login / register / lost-password / comments, WooCommerce my-account / checkout / pay-for-order, Ultimate Multisite checkout / inline-login) und antwortet mit HTTP 429, einem
Retry-Afterheader und einem randomisierten Tarpit-Sleep (1–5 s, hart auf 15 s begrenzt). - Neu: Einstellungen
cap_rate_limit_tarpit_min/cap_rate_limit_tarpit_max, um das Tarpit-Fenster anzupassen. - Neu: Filter
wu_cap_rate_limit_whitelist_ip, um vertrauenswürdige IP-Bereiche auszunehmen. - Neu: Aktion
wu_cap_rate_limit_will_block, die unmittelbar ausgelöst wird, bevor die Hard-Stop-Antwort gesendet wird. - Neu: Spoofing-resistente Client-IP-Erkennung.
Captcha_Core::get_client_ip()(die maßgebliche Quelle für Rate-Limit-Bucket-Keys, Captcha-siteverify-remoteipund Statistik-IP-Hashes) erzwingt nun ein striktes Vertrauensmodell: REMOTE_ADDR ist die Grundlage,CF-Connecting-IPwird nur berücksichtigt, wenn der unmittelbare Peer innerhalb eines aktuellen Cloudflare-IP-Bereichs liegt, undX-Forwarded-Forwird nur berücksichtigt, wenn der unmittelbare Peer in der vom Admin konfigurierten Liste vertrauenswürdiger Proxys steht, mit einem Rechts-nach-links-Durchlauf, der vertrauenswürdige/CF-Hops überspringt, bevor die Besucher-IP festgelegt wird. - Neu: Einstellung
cap_trust_cloudflare_headers(standardmäßig AUS) — aktiviert Vertrauen inCF-Connecting-IP, wenn die Website hinter Cloudflare betrieben wird. Das Plugin liefert einen gebündelten Cloudflare-CIDR-Snapshot mit und aktualisiert ihn wöchentlich via wp-cron, mit gebündeltem Fallback, falls die Aktualisierung fehlschlägt. - Neu: Einstellung
cap_trusted_proxies— Textbereich mit CIDRs oder reinen IPs (eine pro Zeile,#-Kommentare erlaubt), der Ihre eigenen Front-Line-Proxys / Load-Balancer auflistet. Ohne dies wirdX-Forwarded-Forignoriert, selbst wenn der Rate-Limiter aktiviert ist. - Neu: Auto-Erkennung beim ersten Aktivieren für wahrscheinliche Cloudflare-/Proxy-Konstellation mit einem Ein-Klick-Admin-Hinweis „Erkannte Einstellungen anwenden“. Das Plugin überschreibt niemals Ihre gespeicherten Werte; wenn späterer Traffic darauf hindeutet, dass Ihre Konfiguration nicht mehr der Realität entspricht (z. B. Cloudflare hat CIDR-Bereiche geändert und Ihr Proxy-CIDR ist nun veraltet), zeigt ein nicht ausblendbarer Abweichungshinweis die empfohlene Aktualisierung an.
- Behoben: Unsichtbarer Modus stuft
cap_security_levelnicht mehr stillschweigend auf FAST herunter — die vom Admin konfigurierte Stufe wird berücksichtigt. Ein neuer Filterwu_cap_server_security_levelist für Websites verfügbar, die eigene Logik wünschen. - Behoben: Statistikzähler
rate_limits_triggeredwird nun bei jedem Block erhöht, nicht nur auf dem seltenen Backstop-Pfad nach Erfolg. - Behoben:
Captcha_Core::get_client_ip()ist nun die einzige maßgebliche Quelle für die Zuordnung von Besucher-IPs im Rate-Limiter, bei Captcha-Anbietern (reCAPTCHA + hCaptchasiteverify) und in Statistiken — dadurch wird ein Spoofing-Vektor geschlossen, bei dem direkte Anfragen an den Ursprungsserver mit einem gefälschtenCF-Connecting-IPheader nach der gefälschten IP statt nach dem echten Peer gebuckettet worden wären. - Behoben: Das Rate-Limit-Gate für den klassischen WooCommerce checkout wird nun bei
template_redirect(Priorität 1) statt beiwoocommerce_before_checkout_formausgelöst. Der Hook auf Formularebene wird nie ausgelöst, wenn der Warenkorb leer ist, sodass Flood-Traffic, der nie ein Produkt hinzufügt, den Limiter vollständig umging. - Behoben: Das Rate-Limit-Gate für WooCommerce pay-for-order wird nun bei
template_redirectstatt beiwoocommerce_before_pay_actionausgelöst. Letzteres wird erst ausgelöst, nachdemwp_verify_nonce('woocommerce-pay')erfolgreich war, was bedeutet, dass nicht authentifizierte Angreifer (das tatsächliche Bedrohungsmodell) den Limiter nie auslösten. - Behoben: Das Rate-Limit-Gate für den checkout der WooCommerce Store API (Blöcke) wird nun bei
rest_pre_dispatchstatt beiwoocommerce_store_api_checkout_update_order_from_requestausgelöst. Letzteres wird erst ausgelöst, nachdem die Store API den Warenkorb und die Rechnungsfelder validiert hat, sodass nicht authentifizierte Bots eine 400 vom Validator erhielten und den Limiter nie auslösten. - Behoben: Das Rate-Limit-Gate für Ultimate Multisite inline-login wird nun bei
wu_ajax_nopriv_wu_inline_loginmit Priorität 1 (und dem Mirror für angemeldete Benutzer) statt beiwu_before_inline_loginausgelöst. Letzteres wird erst ausgelöst, nachdemcheck_ajax_referer('wu_checkout')erfolgreich war, sodass nicht authentifizierte Bots ohne gültige wu_checkout-Nonce eine 403 erhielten und den Limiter nie auslösten. - Behoben:
Rate_Limiter::enforce()wendet nun einen Einmal-pro-Anfrage-Schutz an, der nachsurface|ipgeschlüsselt ist, sodass Upstream-Hooks, die zweimal pro Render ausgelöst werden (insbesonderewu_setup_checkoutin Ultimate Multisite), den effektiven Rate-Limit-Schwellenwert nicht mehr halbieren. - Behoben: Rate-Limit-Oberflächen-Gates konsultieren nicht mehr
Captcha_Core::is_whitelisted()(Filterwu_captcha_whitelisted). Dieser Filter signalisiert „Captcha bereits von einer anderen Oberfläche behandelt“ und ist unabhängig vom Flood-Schutz — die WooCommerce-Integration hatte ihn eingebunden, um das WordPress-Login-Captcha zu überspringen, wenn eine Woo-Nonce vorhanden war, was in die Ratenzählung übergriff und Woo-POSTs den Limiter umgehen ließ. Der rate-limit-spezifische Filterwu_cap_rate_limit_whitelist_ipist der einzige Bypass, der nun angewendet wird.
Version: 1.3.2 - Veröffentlicht am 2026-01-27
- Behoben: Cap-Widget wird auf checkout-Formularen mit Elementor oder anderen Page-Buildern nicht gerendert
- Behoben: Benutzerdefiniertes Element cap-widget wird durch wp_kses()-Sanitization entfernt
- Verbessert: Verwendet aufrufbaren Inhalt für das checkout-Captcha-Feld, um HTML-Filterung zu umgehen
- Verbessert: Vereinfachtes JavaScript mit Fallback für Grenzfälle
Version: 1.3.1 - Veröffentlicht am 2026-01-26
- Behoben: Unsichtbarer Modus von Cap Captcha löst sich nicht automatisch auf dynamischen Ultimate Multisite checkout-Formularen
- Verbessert: Cap-checkout-Skript verwendet nun MutationObserver, um dynamisch geladene Widgets zu erkennen
- Verbessert: Abfangen des checkout-Buttons hinzugefügt, um vor dem Absenden auf das Token zu warten
Version: 1.3.0 - Veröffentlicht am 2026-01-27
- Neu: WooCommerce Blocks Checkout-Integration mit Store API Fetch-Interception
- Neu: Unsichtbare Captcha-Unterstützung für WooCommerce Checkout (hCaptcha invisible, reCAPTCHA v2 invisible, v3)
- Neu: Eigenständige Einstellungsseite für die Verwendung ohne Ultimate Multisite
- Neu: Jetpack Autoloader zur Vermeidung von Abhängigkeitskonflikten
- Behoben: hCaptcha wurde beim dynamischen Ultimate Multisite Checkout nicht gerendert (per AJAX geladener Inhalt)
- Behoben: Captcha wurde bei Formularvalidierungsfehlern nicht aktualisiert/zurückgesetzt
- Behoben: hCaptcha wurde auf der WooCommerce Checkout-Seite nicht angezeigt
- Behoben: reCAPTCHA-Klasse-nicht-gefunden-Fehler (google/recaptcha PHP-Bibliothek hinzugefügt)
- Verbessert: Fehlererkennung über WordPress Hooks, MutationObserver und AJAX-Interception
- Verbessert: Einstellungsbeschreibungen enthalten jetzt Dashboard-URLs für API-Schlüssel
Version: 1.2.2 - Veröffentlicht am 2026-01-24
- Behoben: Captcha wurde im Ultimate Multisite Login-Formularelement nicht angezeigt (Formular-Filtername stimmte nicht überein)
- Behoben: Cap-Widget-HTML wurde durch wp_kses()-Bereinigung entfernt
- Behoben: JavaScript-Selektoren fanden Formulare mit Schrägstrichen in Element-IDs nicht
- Hinzugefügt: Filter-Hook
wu_kses_allowed_htmlfür classaddons, um erlaubte HTML-Tags zu erweitern - Entfernt: Toter Code in JavaScript-Dateien durch anbieterspezifische Skripte ersetzt
Version: 1.2.1 - Veröffentlicht am 2026-01-23
- Behoben: Cap Captcha Token-Validierung schlug in Multisite-Umgebungen fehl (verwendet jetzt netzwerkweite Transients)
- Behoben: Captcha wird jetzt für alle Benutzer unabhängig vom Login-Status konsistent gerendert
- Behoben: Abweichung zwischen Captcha-Rendering und -Validierung, die Checkout-Fehler verursachte
Version: 1.2.0 - Veröffentlicht am 2026-01-21
- Neu: Cap Captcha – selbst gehostetes Proof-of-Work-Captcha, bei Aktivierung standardmäßig aktiviert
- Neu: Zero-Configuration-Schutz – aktiviere das Add-on und du bist sofort geschützt
- Neu: Polymorphe Captcha-Anbieterarchitektur für einfache Erweiterbarkeit
- Neu: WooCommerce Store API Checkout-Schutz gegen Card-Testing-Angriffe
- Neu: Statistik-Tracking-Dashboard mit Challenges, Verifizierungen und blockierten Angriffen
- Neu: Sicherheitsstufen-Voreinstellungen (Schnell, Mittel, Max) für Cap Captcha-Schwierigkeit
- Neu: Abstrakte Basisklassen für reCAPTCHA- und hCaptcha-Anbieter
- Verbessert: Codebasis in modulare Anbieterklassen umstrukturiert
- Verbessert: Bessere Trennung der Verantwortlichkeiten mit dedizierter Manager-Klasse
- Fixed: Security improvements for $_SERVER variable sanitization
- Behoben: PHPUnit-Testkonfiguration für WordPress-Namenskonventionen
Version: 1.0.1 - Veröffentlicht am 2025-09-28
- Präfix in ultimate-multisite umbenannt; Text-Domain aktualisiert; Versionsanhebung.