Skip to main content

Αλλαγές Καταγραφής 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 + hCaptcha siteverify), και των στατιστικών — κλείνοντας ένα vector συγχέδιου όπου οι αιτήματα απευθείας από τον origin-server που φέρουν ένα παραποιημένο header CF-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; αύξηση έκδοσης.