Όταν το firewall μπλοκάρει το checkout: κανόνες WAF για Magento και WooCommerce
Ένα web application firewall είναι σωστή επιλογή για κάθε κατάστημα. Είναι όμως και από τους πιο συχνούς λόγους που το checkout χαλάει για κάποιους πελάτες και όχι για άλλους: bot challenge σε AJAX κλήση, κανόνας που θεωρεί ύποπτη μια διεύθυνση με απόστροφο, callback τράπεζας που θεωρείται επίθεση. Σε εσάς το κατάστημα φαίνεται μια χαρά· το log του firewall λέει άλλα.

Πώς φαίνεται
Οι αγοραστές βλέπουν ένα loading που δεν τελειώνει, μήνυμα «σφάλμα κατά την επεξεργασία της παραγγελίας» ή πληρωμή που περνά στην τράπεζα ενώ η παραγγελία μένει pending. Στην κονσόλα του browser, το αίτημα του checkout επιστρέφει 403, ή σελίδα challenge σε HTML εκεί που περιμένει JSON.
Συχνά είναι μερικό: μόνο κάποιες χώρες, μόνο δίκτυα κινητής, μόνο πελάτες πίσω από VPN ή από NAT παρόχου που μοιράζεται μία IP με χιλιάδες άλλους.
Διαδρομές που δεν πρέπει να περνούν challenge
WooCommerce: `?wc-ajax=*` (update_order_review, checkout, apply_coupon), `/wp-json/wc/store/v1/*` για το Blocks checkout, `/wc-api/*` και τα webhooks της πύλης πληρωμής. Magento: `/rest/*/V1/carts/*`, `/rest/*/V1/guest-carts/*`, `/checkout/*`, `/customer/section/load` και το callback URL κάθε module πληρωμής.
Αυτές οι κλήσεις γίνονται από JavaScript ή από τους servers του παρόχου πληρωμών, άρα δεν μπορούν να λύσουν challenge. Βάλτε κανόνα παράκαμψης του bot challenge σε αυτές τις διαδρομές και κρατήστε ανοιχτούς τους managed κανόνες.
Callbacks των παρόχων πληρωμών
Τράπεζες και gateways καλούν το κατάστημα από τους δικούς τους servers για να επιβεβαιώσουν την πληρωμή. Αν αυτή η κλήση σταματήσει από αποκλεισμό χώρας, κανόνα bot ή rate limit, ο πελάτης χρεώνεται και η παραγγελία μένει σε pending payment. Δείτε τα παραγγελίες Magento σε pending payment και αποτυχίες redirect καρτών.
Επιτρέψτε τις δημοσιευμένες IP του παρόχου ή την ακριβή διαδρομή του callback, και καταγράφετε κάθε μπλοκάρισμα εκεί ώστε να το καταλάβετε όταν ο πάροχος προσθέσει νέες διευθύνσεις.
Κανόνες που χτυπούν σε πραγματικά δεδομένα πελατών
Υπογραφές του OWASP core rule set μπορεί να ταιριάξουν σε κανονική είσοδο: απόστροφο σε επώνυμο, όνομα οδού με λέξεις SQL, μεγάλα σχόλια παραγγελίας ή κουπόνι με ειδικούς χαρακτήρες. Στο ModSecurity βρείτε το id του κανόνα στο audit log και προσθέστε στοχευμένη εξαίρεση για εκείνη την παράμετρο στη διαδρομή του checkout, αντί να κλείσετε όλο το rule set.
Το Wordfence και παρόμοια plugins μπορεί να περιορίσουν ή να μπλοκάρουν AJAX κλήσεις όταν πολλοί αγοραστές μοιράζονται μία IP. Ανεβάστε τα όρια για τα endpoints του checkout και βάλτε σε λευκή λίστα το δικό σας monitoring.
Δοκιμή από έξω μετά από κάθε αλλαγή κανόνα
Οι αλλαγές στο firewall δεν φαίνονται από μέσα από το admin. Δοκιμάστε όλο το checkout από καθαρό browser σε άλλο δίκτυο μετά από κάθε αλλαγή, ή αφήστε ένα εξωτερικό monitor να το κάνει. Ο δωρεάν έλεγχος checkout για WooCommerce και το τεστ checkout για Magento τρέχουν εκτός του δικτύου σας και δείχνουν σε ποιο βήμα πέφτει το μπλοκάρισμα.
Για προστασία από card testing που δεν ενοχλεί τους αγοραστές, δείτε το επιθέσεις card testing.
Συχνές ερωτήσεις
Μπορεί το Cloudflare να μπλοκάρει το checkout μου;
Ναι. Bot challenges ή κανόνες σε AJAX και REST κλήσεις του checkout, ή σε callbacks πληρωμών, επιστρέφουν σελίδα challenge εκεί που το checkout περιμένει JSON.
Ποιες διαδρομές του WooCommerce να παρακάμπτουν το bot challenge;
Οι κλήσεις ?wc-ajax=, το /wp-json/wc/store/ για το Blocks checkout, το /wc-api/ και τα webhooks της πύλης πληρωμής. Κρατήστε ανοιχτούς τους managed κανόνες.
Πώς ξέρω ότι φταίει το firewall;
Ψάξτε για 403 ή HTML challenge στην καρτέλα Network του browser και ταιριάξτε την ώρα με το event log του firewall.