Αλλαγές Καταγραφής Captcha
Έκδοση: 1.5.0 - Έκδοση στις 2026-05-22
- Νέο: Περιοριστής ρυθμού με σταματημότητα (Hard-stop 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, ένα header
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που ενεργοποιείται αμέσως πριν αποσταλεί η απάντηση σταματημού. - Νέο: Ανίχνευση IP του πελάτη ανθεκτική στη συγχέδιο (Spoof-resistant). Η συνάρτηση
Captcha_Core::get_client_ip()(η πηγή αλήθειας για τα κλειδιά των buckets του rate-limit, τοremoteipτου captcha siteverify, και τα IP hashes στα στατιστικά) επιβάλλει πλέον ένα αυστηρό μοντέλο εμπιστοσύνης: ΤοREMOTE_ADDRείναι το ελάχιστο όριο, τοCF-Connecting-IPλαμβάνεται υπόψη μόνο όταν ο άμεσος συνδεόμενος είναι εντός ενός τρέχοντος εύρους IP της Cloudflare, και τοX-Forwarded-Forλαμβάνεται υπόψη μόνο όταν ο άμεσος συνδεόμενος βρίσκεται στη λίστα αξιωπισμένων proxy που έχει ρυθμίσει ο διαχειριστής, με μια κίνηση από δεξιά προς τα αριστερά που παρακάμπτει τα αξιωπισμένα/Cloudflare hops πριν καταλήξει στο IP του επισκέπτη. - Νέο: Ρύθμιση
cap_trust_cloudflare_headers(προεπιλεγμένη ΑΠΟ) — επιλέξτε την εμπιστοσύνη στοCF-Connecting-IPόταν βρίσκεστε πίσω από Cloudflare. Το plugin περιλαμβάνει ένα πακέτο στιγμιότυπο CIDR της Cloudflare και το ανανεώνει εβδομαδιαίως μέσω wp-cron με πακέτο fallback εάν αποτύχει η ανανέωση. - Νέο: Ρύθμιση
cap_trusted_proxies— ένα textarea με CIDRs ή απλά IP (ένα ανά γραμμή, επιτρέπονται σχόλια#) που απαριθμώνει τα δικά σας front-line proxies / load-balancers. Χωρίς αυτό, τοX-Forwarded-Forαγνοείται ακόμα και όταν είναι ε νεργοποιημένος ο περιοριστής ρυθμού. - Νέο: Αυτο-ανίχνευση πιθανής κατάστασης Cloudflare / proxy με ένα κλικ "Εφαρμογή αναγνωρισμένων ρυθμίσεων" στην ειδοποίηση του διαχειριστή. Το plugin δεν αντικαθιστά ποτέ τις αποθηκευμένες τιμές σας· εάν η επακόλουθη κίνηση υποδηλώνει ότι η ρύθమిσή σας δεν ταιριάζει πλέον με την πραγματικότητα (π.χ. η Cloudflare άλλαξε τα εύρη CIDR και το εύρος CIDR του proxy σας είναι πλέον παρωχημένο), εμφανίζεται μια μη απορριμώσιμη ειδοποίηση που προτείνει την ενημέρωση.
- Διορθωμένο: Η λειτουργία "Invisible mode" δεν μειώνει πλέον σιωπηρά το
cap_security_levelσε FAST — احترمవుται το επίπεδο που έχει ρυθμίσει ο διαχειριστής. Ένα νέο φίλτροwu_cap_server_security_levelείναι διαθέσιμο για τα sites που θέλουν προσαρμοσμένη λογική. - Διορθωμένο: Ο μετρητής στατιστικών
rate_limits_triggeredαυξάνεται πλέον σε κάθε μπλοκάρισμα, και όχι μόνο στην σπάνια διαδρομή πίσω μετά την επιτυχή ολοκλήρωση. - Διορθωμένο: Το
Captcha_Core::get_client_ip()είναι πλέον η μοναδική πηγή αλήθειας για την καταγραφή του IP του επισκέπτη σε όλη την περιοχή του rate-limiter, των παρόχων captcha (reCAPTCHA + hCaptchasiteverify), και των στατιστικών — κλείνοντας ένα vector συγχέδιου όπου οι αιτήματα απευθείας από τον origin-server που φέρουν ένα παραποιημένο headerCF-Connecting-IPθα είχαν μετρηθεί με το συγχεδιζόμενο IP αντί για το πραγματικό peer. - Διορθωμένο: Η περιοχή rate-limit του κλασικού checkout του WooCommerce ενεργοποιείται πλέον στο
template_redirect(προτεραιότητα 1) αντί γιαwoocommerce_before_checkout_form. Το hook σε επίπεδο φόρμας δεν ενεργοποιείται ποτέ όταν το καλάθι είναι κενό, οπότε ο κίνδυνος της υπερφόρτωσης κίνησης που δεν προσθέτει ποτέ προϊόν ήταν παρακάμπτοντας εντελώς τον περιοριστή. - Διορθωμένο: Η περιοχή rate-limit του WooCommerce pay-for-order ενεργοποιείται πλέον στο
template_redirectαντί γιαwoocommerce_before_pay_action. Αυτό το τελευταίο ενεργοποιείται μόνο αφού επιτύχει τοwp_verify_nonce('woocommerce-pay'), πράγμα που σημαίνει ότι οι μη εξουσιοδοτημένοι επιτιθέμενοι (το πραγματικό μοντέλο απειλής) δεν ενεργοποιούσαν ποτέ τον περιοριστή. - Διορθωμένο: Η περιοχή rate-limit του checkout του WooCommerce Store API (blocks) ενεργοποιείται πλέον στο
rest_pre_dispatchαντί γιαwoocommerce_store_api_checkout_update_order_from_request. Το τελευταίο ενεργοποιείται μόνο αφού επικυρώσει τ ο Store API το καλάθι και τα πεδία χρέωσης, οπότε οι μη εξουσιοδοτημένοι bots έλαβαν 400 από τον επικυρωτή και δεν ενεργοποίησαν ποτέ τον περιοριστή. - Διορθωμένο: Η περιοχή rate-limit του inline-login του Ultimate Multisite ενεργοποιείται πλέον στο
wu_ajax_nopriv_wu_inline_loginπροτεραιότητα 1 (και το αντίστοιχο για τα logged-in) αντί γιαwu_before_inline_login. Το τελευταίο ενεργοποιείται μόνο αφού επιτύχει τοcheck_ajax_referer('wu_checkout'), οπότε οι μη εξουσιοδοτημένοι bots χωρίς έγκυρο nonce wu_checkout έλαβαν 403 και δεν ενεργοποίησαν ποτέ τον περιοριστή. - Διορθωμένο: Το
Rate_Limiter::enforce()εφαρμόζει πλέον μια προστασία "μία φορά ανά αίτημα" με κλειδίsurface|ip, έτσι ώστε οι upstream hooks που ενεργοποιούνται δύο φορές ανά render (ειδικά τοwu_setup_checkoutστο Ultimate Multisite) να μην μειώνουν πλέον το αποτελεσματικό όριο του rate-limit. - Διορθωμένο: Οι περιοχές rate-limit δεν συμβουλεύονται πλέον το
Captcha_Core::is_whitelisted()(φίλτροwu_captcha_whitelisted). Αυτό το φίλτρο υποδεικνύει "captcha που χειριστήκε ήδη από μια άλλη επιφάνεια" και είναι ανεξάρτητο από την προστασία από πλημμύρα — η ενσωμάτωση WooCommerce το συνδέθηκε για να παρακάμψει το captcha σύν δεσης WordPress όταν ήταν παρόν ένα nonce Woo, κάτι που διαρρέει στον μέτρημα ρυθμού και επέτρεψε στα POSTs του Woo να αποφύγουν τον περιοριστή. Το φίλτροwu_cap_rate_limit_whitelist_ip, ειδικό για rate-limit, είναι η μόνη εξαίρεση που εφαρμόζεται τώρα.
Έκδοση: 1.3.2 - Έκδοση στις 2026-01-27
- Διορθωμένο: Το widget Captcha δεν εμφανίζεται στις φόρμες checkout που χρησιμοποιούν Elementor ή άλλους page builders.
- Διορθωμένο: Το custom element του cap-widget αφαιρείται από την αποστείρωση
wp_kses(). - Βελτιωμένο: Χρήση περιεχομένου που μπορεί να καλεστεί (callable content) για το πεδίο captcha του checkout για να παρακάμψει τη φιλτραρίωση HTML.
- Βελτιωμένο: Απλοποιήθηκε το JavaScript με fallback για περιπτώσεις ακραίων συνθηκών.
Έκδοση: 1.3.1 - Έκδοση στις 2026-01-26
- Διορθωμένο: Η λειτουργία Invisible mode του Cap Captcha δεν λύνει αυτόματα στις δυναμικές φόρμες checkout του Ultimate Multisite.
- Βελτιωμένο: Το script του Cap checkout χρησιμοποιεί πλέον MutationObserver για την ανίχνευση δυναμικά φορτωμένων widgets.
- Βελτιωμένο: Προστέθηκε η παρενέμβαση του κουμπιού checkout για να περιμένει το token πριν την υποβολή.
Έκδοση: 1.3.0 - Έκδοση στις 2026-01-27
- Νέο: Ενσωμάτ ωση checkout του WooCommerce Blocks με παρενέμβαση λήψης Store API.
- Νέο: Υποστήριξη invisible captcha για το checkout του WooCommerce (hCaptcha invisible, reCAPTCHA v2 invisible, v3).
- Νέο: Αυτοстояτική σελίδα ρυθμίσεων για χρήση χωρίς το Ultimate Multisite.
- Νέο: Jetpack Autoloader για πρόληψη συγκρούσεων εξαρτήσεων.
- Διορθωμένο: Το hCaptcha δεν εμφανίζεται στο δυναμικό checkout του Ultimate Multisite (περιεχόμενο φορτωμένο μέσω AJAX).
- Διορθωμένο: Το Captcha δεν ανανεώνεται/απορρίπτεται όταν συμβαίνουν σφάλματα επικύρωσης της φόρμας.
- Διορθωμένο: Το hCaptcha δεν εμφανίζεται στη σελίδα checkout του WooCommerce.
- Διορθωμένο: Σφάλμα "reCAPTCHA class not found" (προστέθηκε η βιβλιοθήκη PHP google/recaptcha).
- Βελτιωμένο: Ανίχνευση σφαλμάτων μέσω WordPress hooks, MutationObserver και AJAX interception.
- Βελτιωμένο: Οι περιγραφές των ρυθμίσεων περιλαμβάνουν πλέον τις διευθύνσεις του dashboard για τα API keys.
Έκδοση: 1.2.2 - Έκδοση στις 2026-01-24
- Διορθωμένο: Το Captcha δεν εμφανίζεται στο Ultimate Multisite Login Form Element (διαφοροποίηση ονόματος φίλτρου).
- Διορθωμένο: Το HTML του widget Cap αφαιρείται από την αποστείρωση
wp_kses(). - Διορθωμένο: Οι selectors JavaScript δεν βρίσκουν τις φόρμες με τελεία στα element IDs.
- Προστέθηκε: Το hook φίλτρου
wu_kses_allowed_htmlγια να επεκτείνουν τα classaddons τα επιτρεπόμενα HTML tags. - Αφαιρέθηκαν: Αρχεία JavaScript dead code αντικαταστάθηκαν από scripts ειδικά για τον πάροχο.
Έκδοση: 1.2.1 - Έκδοση στις 2026-01-23
- Διορθωμένο: Η επικύρωση του token του Cap Captcha αποτυγχάνει σε περιβάλλοντα multisite (χρησιμοποιεί πλέον transients σε όλο το network).
- Διορθωμένο: Το Captcha εμφανίζεται πλέον σταθερά για όλους τους χρήστες ανεξαρτήτως κατάστασης σύνδεσης.
- Διορθωμένο: Η ασυμφωνία μεταξύ της εμφάνισης και της επικύρωσης του captcha που προκάλεσε αποτυχίες checkout.
Έκδοση: 1.2.0 - Έκδοση στις 2026-01-21
- Νέο: Cap Captcha - self-hosted proof-of-work captcha, ενεργοποιείται αυτόματα με την ενεργοποίηση.
- Νέο: Προστασία χωρίς ρυθμίσεις (Zero-configuration protection) - ενεργοποιείτε το addon και είστε προστατευμένοι αμέσως.
- Νέο: Πολυμορφική αρχιτεκτονική παρόχου captcha για εύκολη επέκταση.
- Νέο: Προστασία checkout του WooCommerce Store API ενάντια σε επιθέσεις card testing.
- Νέο: Dashboard παρακολούθησης στατιστικών που δείχνει challenges, verifications και μπλοκαρισμένα επιθέσεις.
- Νέο: Προεπιλεγμένα επίπεδα ασφαλείας (Fast, Medium, Max) για τη δυσκολία του Cap Captcha.
- Νέο: Αφαιστές βασικές κλάσεις για τους παρόχους reCAPTCHA και hCaptcha.
- Βελτιωμένο: Αναδιάταξη του codebase σε modular provider classes.
- Βελτιωμένο: Καλύτερη διαχωριστική σκέψη με αφιερωμένη class manager.
- Διορθωμένο: Βελτιώσεις ασφαλείας για την αποστείρωση του biến
$_SERVER. - Διορθωμένο: Ρύθμιση του PHPUnit test configuration για τις συμβάσεις ονοματοδοσίας του WordPress.
Έκδοση: 1.0.1 - Έκδοση στις 2025-09-28
- Μετονομασία prefix σε ultimate-multisite; ενημέρωση text domain; αύξηση έκδοσης.