403 Forbidden κατά την υποβολή φόρμας στο CS-Cart
Κάποιες υποβολές φορμών επιστρέφουν 403 Forbidden ή Not Acceptable. Τι ρόλο παίζει το mod_security του server και γιατί η απενεργοποίησή του δεν είναι ακίνδυνη λύση.
Τι βλέπετε
Μια φόρμα — επικοινωνία, σχόλιο προϊόντος, περιγραφή σε παραγγελία, πεδίο στο admin — επιστρέφει 403 Forbidden ή Not Acceptable αντί να αποθηκευτεί. Το χαρακτηριστικό είναι ότι συμβαίνει μόνο με ορισμένο περιεχόμενο: η ίδια φόρμα με άλλο κείμενο περνάει κανονικά.
Τι σημαίνει συνήθως
Η επίσημη τεκμηρίωση αποδίδει το σύμπτωμα στο mod_security του web server. Το mod_security εξετάζει τα POST αιτήματα για λέξεις ή συνδυασμούς που μοιάζουν με απόπειρα επίθεσης. Η τεκμηρίωση αναφέρει ως τυπικά παραδείγματα που ενεργοποιούν τον κανόνα: curl, wget, set, file( και system(.
Αυτό εξηγεί το πιο περίεργο μέρος του συμπτώματος: ένας πελάτης που γράφει «να μου στείλετε το αρχείο» ή ένας developer που επικολλά απόσπασμα κώδικα σε σημείωση παραγγελίας μπορεί να πυροδοτήσει τον κανόνα, ενώ όλα τα άλλα δουλεύουν.
Έλεγχοι με σειρά
- Αναπαραγάγετε με ελεγχόμενο κείμενο. Υποβάλετε την ίδια φόρμα με απλό κείμενο και μετά με το ύποπτο κείμενο. Αν η διαφορά είναι το περιεχόμενο, το σύμπτωμα επιβεβαιώνεται.
- Σημειώστε ποιες λέξεις το προκαλούν. Αυτή η λίστα είναι το πιο χρήσιμο στοιχείο για τον διαχειριστή του server.
- Ζητήστε από τον πάροχο το σχετικό mod_security log για την ώρα της υποβολής. Εκεί φαίνεται το rule id που μπλόκαρε το αίτημα.
- Ελέγξτε αν αφορά και το admin panel. Αν ναι, περιορίζεται σοβαρά η καθημερινή διαχείριση και η προτεραιότητα ανεβαίνει.
Προσοχή πριν αλλάξετε κάτι
Η τεκμηρίωση δίνει απόσπασμα .htaccess που απενεργοποιεί το mod_security, και η σελίδα απαιτήσεων αναφέρει ότι το mod_security πρέπει να είναι απενεργοποιημένο ή ρυθμισμένο ώστε να συνεργάζεται με το CS-Cart.
Η ολική απενεργοποίηση δεν είναι καλή ιδέα σε κατάστημα σε λειτουργία. Το mod_security είναι επίπεδο προστασίας: το σβήνετε για ένα πεδίο σχολίων και το χάνετε για όλο το site. Επιπλέον, τα directives που αναφέρει η τεκμηρίωση (SecFilterEngine) αφορούν παλαιότερη έκδοση του module και δεν ισχύουν σε κάθε server.
Η σωστή διαδρομή είναι στοχευμένη: ζητήστε από τον πάροχο εξαίρεση του συγκεκριμένου rule id για τη συγκεκριμένη διαδρομή, όχι γενική απενεργοποίηση. Οι σοβαροί πάροχοι το κάνουν ρουτίνα όταν τους δώσετε το log.
Τι να κρατήσετε για τον τεχνικό
- Ποια φόρμα και ποιο URL.
- Το ακριβές κείμενο που προκαλεί το σφάλμα (ή τη λέξη που το ενεργοποιεί).
- Την ώρα υποβολής με ζώνη ώρας, για αντιστοίχιση με το log.
- Αν το πρόβλημα αφορά storefront, admin ή και τα δύο.
Πηγές
Τα στοιχεία της πλατφόρμας προέρχονται από την επίσημη τεκμηρίωση. Η σειρά διερεύνησης, οι προειδοποιήσεις για περιβάλλον παραγωγής και οι πρακτικές συστάσεις είναι συντακτική κρίση, χωρίς ισχυρισμό δοκιμής στη δική σας εγκατάσταση.
Σχετικά συμπτώματα
Η αναβάθμιση CS-Cart απέτυχε: τι κάνουμε τώρα
Η αναβάθμιση διακόπηκε ή άφησε το κατάστημα εκτός λειτουργίας.
Δείτε τους ελέγχους →HTTP 500 στο CS-Cart: δικαιώματα, directives και server
Ο browser εμφανίζει 500 Internal Server Error.
Δείτε τους ελέγχους →Λευκή σελίδα στο CS-Cart: τι σημαίνει και τι ελέγχουμε
Η σελίδα φορτώνει κενή, χωρίς μήνυμα σφάλματος.
Δείτε τους ελέγχους →