Φόρμες επικοινωνίας WordPress: μια λίστα ελέγχου ασφαλείας
Contact Form 7, WPForms, Gravity Forms, Ninja Forms ή Fluent Forms – το πρόσθετο έχει μικρότερη σημασία από το πώς ρυθμίζεται και συντηρείται. Ακολουθεί τι πρέπει να ελέγξετε και τι να ξαναελέγχετε μετά από κάθε ενημέρωση.
Οι περισσότεροι ιστότοποι WordPress χρησιμοποιούν ένα από λίγα πρόσθετα φορμών: Contact Form 7, WPForms, Gravity Forms, Ninja Forms, Fluent Forms και μερικά άλλα. Οποιοδήποτε από αυτά μπορεί να λειτουργεί με ασφάλεια ή να μείνει ορθάνοιχτο. Η διαφορά σπάνια βρίσκεται στο ίδιο το πρόσθετο, αλλά στις ρυθμίσεις του, στις επεκτάσεις γύρω του, στον τρόπο με τον οποίο η αλληλογραφία φεύγει από τον διακομιστή και στο τι συμβαίνει στα μηνύματα μόλις φτάσουν.
- Διατηρείτε ενημερωμένα το πρόσθετο φορμών και κάθε επέκταση, και διαγράφετε όσα δεν χρησιμοποιείτε πλέον.
- Ενεργοποιήστε το ενσωματωμένο anti-spam του πρόσθετου – honeypot, ενσωμάτωση CAPTCHA, Akismet όπου ταιριάζει – και επιβεβαιώστε ότι λειτουργεί πράγματι.
- Στέλνετε τις ειδοποιήσεις μέσω SMTP με έλεγχο ταυτότητας από μια διεύθυνση του δικού σας τομέα.
- Περιορίστε τις μεταφορτώσεις κατά τύπο και μέγεθος, και φροντίστε τα μεταφορτωμένα αρχεία να μην εμφανίζονται ούτε να μπορούν να περιηγηθούν δημόσια.
- Κρατήστε τη διεύθυνση e-mail του παραλήπτη εκτός της σελίδας και του πηγαίου κώδικά της.
- Αποθηκεύετε μόνο τις καταχωρίσεις που χρειάζεστε και μόνο για όσο τις χρειάζεστε.
- Εκτελείτε έναν σύντομο έλεγχο μετά από κάθε ενημέρωση του WordPress, του θέματος ή οποιουδήποτε πρόσθετου.
Ενημερώσεις: το πρόσθετο φορμών και όλα όσα το περιβάλλουν
Τα πρόσθετα φορμών είναι δημοφιλείς στόχοι, επειδή δέχονται δεδομένα από οποιονδήποτε στο διαδίκτυο. Οι διορθώσεις ασφαλείας έρχονται ως συνηθισμένες ενημερώσεις, οπότε ενημερώνετε άμεσα – και όχι μόνο το κύριο πρόσθετο. Οι επεκτάσεις για πληρωμές, μεταφορτώσεις, συνδέσεις CRM, λογική υπό συνθήκες ή πρόσθετους παρόχους CAPTCHA είναι χωριστός κώδικας με τις δικές του ευπάθειες. Το ίδιο ισχύει και για πρόσθετα που εγκαταστήσατε κάποτε για δοκιμή και ξεχάσατε. Η απενεργοποίηση δεν αρκεί: τα απενεργοποιημένα πρόσθετα παραμένουν στον διακομιστή, και τα αρχεία τους μπορούν σε ορισμένες περιπτώσεις να προσπελαστούν απευθείας. Αν δεν το χρησιμοποιείτε, διαγράψτε το.
Anti-spam: ενεργοποιήστε το και μετά αποδείξτε ότι λειτουργεί
Τα περισσότερα πρόσθετα φορμών έχουν δικές τους επιλογές anti-spam ή ενσωματώνονται με εξωτερικές υπηρεσίες: ένα πεδίο honeypot που συμπληρώνουν τα bots και δεν βλέπουν ποτέ οι άνθρωποι, CAPTCHA όπως reCAPTCHA, hCaptcha ή Cloudflare Turnstile, και το Akismet, που ελέγχει το περιεχόμενο των μηνυμάτων σε σύγκριση με μια βάση δεδομένων spam. Οι επιλογές διαφέρουν ανά πρόσθετο και έκδοση, οπότε ελέγξτε τις ρυθμίσεις αντί να κάνετε υποθέσεις. Τα εξωτερικά CAPTCHA φορτώνουν scripts από τρίτο, και το Akismet στέλνει το υποβληθέν περιεχόμενο σε εξωτερική υπηρεσία – και τα δύο ανήκουν στην πολιτική απορρήτου σας και, ανάλογα με τη ρύθμισή σας, στη διαχείριση συγκατάθεσης.
Το συχνότερο πρόβλημα είναι η προστασία που είναι ενεργοποιημένη αλλά δεν λειτουργεί. Ένα CAPTCHA που λειτουργεί με δημόσια δοκιμαστικά κλειδιά αφήνει τα πάντα να περάσουν. Ένα widget του οποίου το script μπλοκάρεται από ένα πρόσθετο προσωρινής αποθήκευσης ή βελτιστοποίησης ή από ένα σφάλμα JavaScript δεν σταματά τίποτα. Ένα πεδίο honeypot χωρίς τα στυλ που το κρύβουν διαβάζεται από αναγνώστες οθόνης και συμπληρώνεται από πραγματικούς επισκέπτες. Επομένως, μετά από κάθε αλλαγή, ανοίξτε τη φόρμα σε ιδιωτικό παράθυρο, ελέγξτε την κονσόλα του προγράμματος περιήγησης και τον πηγαίο κώδικα της σελίδας και στείλτε ένα δοκιμαστικό μήνυμα. Αν θέλετε προστασία που δεν εξαρτάται από τη Google, το δωρεάν πρόσθετο WordPress του formexposed προσθέτει honeypot, έλεγχο χρόνου και proof-of-work και ελέγχει ξανά τον ιστότοπο μετά από ενημερώσεις πρόσθετων – μία επιλογή ανάμεσα σε πολλές.
Αλληλογραφία: πώς αποστέλλεται και πού πηγαίνει
Από προεπιλογή, το WordPress παραδίδει την αλληλογραφία στη συνάρτηση mail της PHP του διακομιστή, και σε πολλούς παρόχους φιλοξενίας τα μηνύματα αυτά έχουν ελλιπή έλεγχο ταυτότητας και καταλήγουν στα ανεπιθύμητα – ή εξαφανίζονται σιωπηλά. Αντ' αυτού, στέλνετε μέσω ενός πρόσθετου SMTP ή της υπηρεσίας αλληλογραφίας του παρόχου φιλοξενίας σας, χρησιμοποιώντας ένα πραγματικό γραμματοκιβώτιο με όνομα χρήστη και κωδικό πρόσβασης και μια διεύθυνση αποστολέα στον δικό σας τομέα, όπως μια ειδική διεύθυνση forms@. Οι εγγραφές SPF, DKIM και DMARC του τομέα πρέπει να καλύπτουν αυτόν τον αποστολέα. Μη βάζετε τη διεύθυνση του επισκέπτη στο πεδίο From: δεν είναι ο δικός σας τομέας, οπότε το μήνυμα δεν μπορεί να περάσει την ευθυγράμμιση DMARC και, ανάλογα με την πολιτική του τομέα του επισκέπτη, καταλήγει στα ανεπιθύμητα ή απορρίπτεται. Ορίστε τη ως Reply-To, και μπορείτε ακόμη να απαντάτε με ένα κλικ.
Η διεύθυνση του παραλήπτη ανήκει στις ρυθμίσεις του πρόσθετου, όχι στη σελίδα. Ελέγξτε τον πηγαίο κώδικα της σελίδας επικοινωνίας σας: ένας σύνδεσμος mailto δίπλα στη φόρμα ή ένα κρυφό πεδίο που περιέχει τη διεύθυνση του παραλήπτη παραδίδει αυτή τη διεύθυνση σε κάθε bot συλλογής. Σε παλαιότερες ή ειδικά κατασκευασμένες φόρμες μπορεί να είναι χειρότερα – αν ο διακομιστής εμπιστεύεται ένα κρυφό πεδίο παραλήπτη, οποιοσδήποτε μπορεί να το αλλάξει και να χρησιμοποιήσει τη φόρμα σας για να στέλνει e-mail σε αυθαίρετες διευθύνσεις.
Μεταφορτώσεις και αποθηκευμένες καταχωρίσεις
Οι μεταφορτώσεις αρχείων είναι η πιο επικίνδυνη λειτουργία μιας φόρμας, οπότε ρωτήστε πρώτα αν τις χρειάζεστε καθόλου. Αν ναι, επιτρέψτε μόνο τους τύπους που πράγματι περιμένετε – ας πούμε PDF και συνήθεις μορφές εικόνας – αντί να αποκλείετε μερικούς επικίνδυνους, και ορίστε όριο μεγέθους. Ελέγξτε πού αποθηκεύει το πρόσθετο τις μεταφορτώσεις: δεν πρέπει να εμφανίζονται σε λίστα σε δημόσιο κατάλογο και ιδανικά να μην είναι καθόλου προσβάσιμες σε διεύθυνση που μπορεί να μαντέψει κανείς. Διαγράψτε τες μόλις διεκπεραιωθούν ή στείλτε τες ως συνημμένα αντί να τις κρατάτε στον διακομιστή.
Πολλά πρόσθετα φορμών ή οι επεκτάσεις τους αποθηκεύουν κάθε υποβολή στη βάση δεδομένων του WordPress, συχνά μαζί με το spam. Αυτό είναι χρήσιμο αντίγραφο ασφαλείας όταν αποτυγχάνει η αλληλογραφία, αλλά και ένας αυξανόμενος σωρός δεδομένων προσωπικού χαρακτήρα. Σύμφωνα με την αρχή του ΓΚΠΔ για τον περιορισμό της περιόδου αποθήκευσης (άρθρο 5(1)(e)), τέτοια δεδομένα δεν πρέπει να διατηρούνται περισσότερο από όσο είναι αναγκαίο. Αποφασίστε αν χρειάζεστε αποθηκευμένες καταχωρίσεις, ποια πεδία και για πόσο, και στη συνέχεια χρησιμοποιήστε τη ρύθμιση αυτόματης διαγραφής του πρόσθετου, αν υπάρχει, ή διαγράφετε τακτικά τις παλιές καταχωρίσεις. Τα αντίγραφα ασφαλείας της βάσης δεδομένων περιέχουν τα ίδια δεδομένα.
Μετά από κάθε ενημέρωση
- 1Ανοίξτε τη σελίδα επικοινωνίας σε ιδιωτικό παράθυρο: η φόρμα και το στοιχείο anti-spam εμφανίζονται σωστά, και η κονσόλα του προγράμματος περιήγησης δεν δείχνει σφάλματα.
- 2Δείτε τον πηγαίο κώδικα της σελίδας: το πεδίο honeypot και το script του CAPTCHA υπάρχουν ακόμη, ενώ η διεύθυνση του παραλήπτη όχι.
- 3Στείλτε ένα δοκιμαστικό μήνυμα: φτάνει στα εισερχόμενα, όχι στα ανεπιθύμητα, και οι κεφαλίδες δείχνουν ότι τα SPF, DKIM και DMARC περνούν.
- 4Ελέγξτε τις ρυθμίσεις που μετράνε: παραλήπτης, διεύθυνση αποστολέα, επιτρεπόμενοι τύποι και μεγέθη μεταφορτώσεων, πόσο καιρό διατηρούνται οι καταχωρίσεις.
- 5Ελέγξτε ότι ο σύνδεσμος προς την πολιτική απορρήτου και τυχόν κείμενο συγκατάθεσης εμφανίζονται ακόμη στη φόρμα.
- 6Σημειώστε την ημερομηνία και τι ελέγξατε, ώστε να γνωρίζετε πότε η φόρμα λειτούργησε τελευταία φορά αποδεδειγμένα.
Μόλις γίνει ρουτίνα, αυτό παίρνει λίγο χρόνο και εντοπίζει ακριβώς τις αθόρυβες βλάβες που διαφορετικά περνούν απαρατήρητες για εβδομάδες. Για μια εξωτερική ματιά, ένας δωρεάν έλεγχος στο formexposed.com εξετάζει τις δημόσιες σελίδες φορμών ενός ιστότοπου χωρίς να υποβάλει τίποτα και δείχνει αν η προστασία που περιμένετε υπάρχει και είναι αποτελεσματικά ρυθμισμένη – χωρίς να χρειάζεται λογαριασμός.