Κάθε φόρμα που βάζεις online είναι πιθανό σημείο εισόδου για επιτιθέμενους. Η ασφάλεια της φόρμας δεν γίνεται τυχαία και δεν μπορείς να την προσπεράσεις. Μία φόρμα χωρίς προστασία μπορεί να εκθέσει ονόματα, email, τηλέφωνα, στοιχεία πληρωμής ή κωδικούς των επισκεπτών σου σε οποιονδήποτε θέλει να την εκμεταλλευτεί.
Τα βασικά της ασφάλειας φόρμας καλύπτουν τις βασικές πρακτικές που κρατούν τα δεδομένα των χρηστών ασφαλή. Αυτό το άρθρο εξηγεί πώς μοιάζει μια ασφαλής φόρμα, γιατί μετράει κάθε επίπεδο προστασίας και πώς δουλεύουν μαζί τα κομμάτια για να προστατεύεται η πληροφορία των επισκεπτών σου.
Τι θα μάθεις: τις βασικές αρχές της ασφάλειας φόρμας, πώς κινούνται τα δεδομένα μέσα από μια φόρμα, ποιες επιθέσεις στοχεύουν φόρμες χωρίς προστασία και πού να εστιάσεις πρώτα τις προσπάθειές σου.
Τι είναι η ασφάλεια φόρμας;
Η ασφάλεια φόρμας είναι η πρακτική του να σχεδιάζεις και να λειτουργείς φόρμες ώστε τα δεδομένα των χρηστών να μένουν προστατευμένα, από τη στιγμή που τα γράφει κάποιος μέχρι την αποθήκευση και τη διαγραφή. Περιλαμβάνει πολλά επίπεδα: τον κώδικα που επεξεργάζεται τη φόρμα, τη σύνδεση ανάμεσα στον επισκέπτη και τον server, τους κανόνες για το ποια δεδομένα συλλέγεις και πόσο καιρό τα κρατάς.
Μια ασφαλής φόρμα κάνει τρία πράγματα:
- Ελέγχει ό,τι μπαίνει. Ελέγχει ότι τα δεδομένα είναι πράγματι αυτό που περιμένεις (ένα email έχει μορφή email, ένα τηλέφωνο έχει μόνο αριθμούς κ.λπ.). Αυτό πιάνει και τα ατυχήματα και τις εσκεμμένες επιθέσεις.
- Προστατεύει τα δεδομένα στη μεταφορά. Χρησιμοποιεί κρυπτογράφηση, ώστε τα δεδομένα που πηγαίνουν από τον browser του επισκέπτη στον server σου να μη μπορούν να διαβαστούν ή να υποκλαπούν από κανέναν άλλον.
- Αποθηκεύει τα δεδομένα με ασφάλεια. Κρατά τις πληροφορίες προστατευμένες αφού αποθηκευτούν, ακολουθεί τους νόμους για το ποιος μπορεί να έχει πρόσβαση και πόσο καιρό να τις κρατάς και εμποδίζει μη εξουσιοδοτημένους να δουν ό,τι έχει σταλεί.
Η ασφάλεια φόρμας δεν είναι ένα μόνο χαρακτηριστικό. Συνδυάζει τεχνικές πρακτικές, νομική συμμόρφωση και λειτουργική πειθαρχία.
Γιατί η ασφάλεια φόρμας μετράει για την επιχείρησή σου
Υπάρχουν τρεις λόγοι που η ασφάλεια φόρμας δεν διαπραγματεύεται:
Εμπιστοσύνη επισκεπτών και φήμη της επιχείρησης
Όταν κάποιος συμπληρώνει φόρμα στην ιστοσελίδα σου, σου εμπιστεύεται πληροφορίες που δεν μοιράζεται δημόσια. Αν αυτές οι πληροφορίες κλαπούν ή διαρρεύσουν, χάνεις την εμπιστοσύνη τους και πιθανούς πελάτες. Μια παραβίαση δεδομένων έχει κόστος φήμης που είναι δύσκολο να ανακτηθεί. Οι άνθρωποι θυμούνται όταν μια επιχείρηση αποτυγχάνει να προστατεύσει τις πληροφορίες τους.
Νομικές και κανονιστικές απαιτήσεις
Ανάλογα με το πού βρίσκονται οι επισκέπτες σου και ποιες πληροφορίες συλλέγεις, μπορεί να υποχρεούσαι από τον νόμο να προστατεύεις αυτά τα δεδομένα. Ο GDPR (για Ευρωπαίους επισκέπτες), ο CCPA (για κατοίκους Καλιφόρνιας) και αμέτρητοι άλλοι νόμοι απορρήτου θέτουν συγκεκριμένα πρότυπα ασφάλειας. Η παραβίαση αυτών των κανόνων μπορεί να οδηγήσει σε πρόστιμα, αγωγές και νομικές κυρώσεις.
Πρόληψη της χρήσης της φόρμας σου ως όπλου από επιτιθέμενους
Μια φόρμα χωρίς προστασία δεν είναι μόνο κίνδυνος κλοπής δεδομένων. Οι επιτιθέμενοι μπορούν επίσης να τη χρησιμοποιήσουν για να εισάγουν κακόβουλο κώδικα, να καταλάβουν συνεδρίες επισκεπτών, να ξεγελάσουν τη βάση δεδομένων σου ώστε να εκτελέσει εντολές ή να γεμίσουν το inbox σου με χιλιάδες ψεύτικες αποστολές. Κάθε είδος επίθεσης προκαλεί διαφορετική ζημιά.
Πώς ρέουν τα δεδομένα της φόρμας μέσα στο σύστημά σου
Η κατανόηση της ροής σε βοηθά να δεις πού μετράει περισσότερο η ασφάλεια. Να τι γίνεται όταν κάποιος στέλνει μια φόρμα:
- Ο επισκέπτης γράφει δεδομένα στον browser. Γράφει στα πεδία της φόρμας. Σε αυτό το σημείο, τα δεδομένα βρίσκονται μόνο στη συσκευή του.
- Ο επισκέπτης στέλνει τη φόρμα. Ο browser μαζεύει όλα τα δεδομένα και τα στέλνει στον server σου.
- Ο server σου τα λαμβάνει. Ο επεξεργαστής της φόρμας ελέγχει τα δεδομένα και αποφασίζει τι να κάνει με αυτά.
- Τα δεδομένα αποθηκεύονται. Μπαίνουν στη βάση δεδομένων σου, στο email ή σε άλλο σύστημα όπου κρατάς τις αποστολές.
- Εσύ ή κάποιος άλλος τα ανακτά αργότερα. Μέλη της ομάδας έχουν πρόσβαση στα δεδομένα που στάλθηκαν, για να απαντήσουν σε αιτήματα, να επεξεργαστούν παραγγελίες ή να αναλύσουν τις πληροφορίες.
- Τελικά διαγράφονται. Κάποια στιγμή τα δεδομένα πρέπει να αφαιρεθούν σύμφωνα με την πολιτική διατήρησης δεδομένων σου.
Οι απειλές ασφαλείας μπορούν να εμφανιστούν σε οποιοδήποτε βήμα. Ο κωδικός ενός επισκέπτη θα μπορούσε να υποκλαπεί καθώς ταξιδεύει στο διαδίκτυο. Ένας επιτιθέμενος θα μπορούσε να ξεγελάσει τη φόρμα σου να αποθηκεύσει κακόβουλο κώδικα. Ένας υπάλληλος με πρόσβαση στις αποστολές θα μπορούσε να διαρρεύσει τα δεδομένα. Ή θα μπορούσες να κρατάς πληροφορίες περισσότερο απ' όσο επιτρέπει ο νόμος.
Τα βασικά επίπεδα ασφάλειας φόρμας
Ασφάλεια μεταφοράς (HTTPS και κρυπτογράφηση)
Όταν ένας επισκέπτης στέλνει μια φόρμα, τα δεδομένα ταξιδεύουν στο διαδίκτυο μέχρι τον server σου. Χωρίς προστασία, όποιος βρίσκεται στο δίκτυο μπορεί να δει τι στέλνει. Το HTTPS (η ασφαλής εκδοχή του πρωτοκόλλου του ιστού) κρυπτογραφεί αυτά τα δεδομένα στη μεταφορά, ώστε μόνο ο server σου να μπορεί να τα διαβάσει. Γι' αυτό κάθε φόρμα πρέπει να τρέχει σε HTTPS και ποτέ σε απλό HTTP.
Έλεγχος εισαγωγής δεδομένων
Η φόρμα σου πρέπει να ελέγχει ότι τα δεδομένα έχουν νόημα, πριν κάνει οτιδήποτε με αυτά. Ένα email πρέπει να μοιάζει με email. Ένα τηλέφωνο πρέπει να έχει μόνο ψηφία. Ένα ποσό πληρωμής πρέπει να είναι αριθμός και όχι κείμενο. Αυτό πιάνει τυπογραφικά λάθη και εμποδίζει τους επιτιθέμενους να τροφοδοτήσουν τη φόρμα σου με δεδομένα φτιαγμένα να προκαλέσουν προβλήματα.
Ταυτοποίηση και διαχείριση συνεδριών
Αν η φόρμα σου συνδέεται με λογαριασμό χρήστη, πρέπει να επαληθεύεις ότι αυτός που τη στέλνει είναι πράγματι αυτός που λέει. Αυτό σημαίνει έλεγχο της συνεδρίας σύνδεσης, διασφάλιση ότι η συνεδρία δεν έχει λήξει ή δεν έχει καταληφθεί και απαίτηση έξτρα επαλήθευσης (όπως ταυτοποίηση δύο παραγόντων) για ευαίσθητες ενέργειες.
Έλεγχοι πρόσβασης στα δεδομένα
Μόλις αποθηκευτούν τα δεδομένα της φόρμας, μόνο εξουσιοδοτημένοι άνθρωποι πρέπει να μπορούν να τα δουν. Αν έχεις φόρμα επικοινωνίας, ίσως μόνο η ομάδα πωλήσεων πρέπει να έχει πρόσβαση σε αυτές τις αποστολές. Αν έχεις φόρμα επαναφοράς κωδικού, κανείς εκτός από αυτόν που αλλάζει τον κωδικό δεν πρέπει να δει τον νέο κωδικό. Οι έλεγχοι πρόσβασης αποφασίζουν ποιος μπορεί να δει, να επεξεργαστεί ή να διαγράψει αποστολές φόρμας.
Συμμόρφωση και πολιτικές διατήρησης
Διαφορετικοί νόμοι θέτουν κανόνες για το ποια δεδομένα μπορείς να συλλέγεις, πώς πρέπει να τα προστατεύεις και πόσο καιρό μπορείς να τα κρατάς. Η συμμόρφωση με αυτούς τους νόμους είναι μέρος της ασφάλειας φόρμας. Πρέπει να ξέρεις ποιοι κανονισμοί ισχύουν για τις φόρμες σου, να σχεδιάζεις τις φόρμες ώστε να πληρούν αυτές τις απαιτήσεις και να διαγράφεις δεδομένα όταν το ορίζει ο νόμος.
Συνηθισμένες απειλές που στοχεύουν φόρμες
Η κατανόηση των επιθέσεων σε βοηθά να δεις γιατί υπάρχει κάθε επίπεδο προστασίας.
Επιθέσεις man-in-the-middle
Ένας επιτιθέμενος υποκλέπτει τα δεδομένα που ταξιδεύουν ανάμεσα στον επισκέπτη και τον server σου. Αυτό γίνεται σε δημόσια δίκτυα WiFi ή όταν κάποιος παρακολουθεί την κίνηση του διαδικτύου. Η κρυπτογράφηση HTTPS το αποτρέπει, κάνοντας τα δεδομένα ακατάληπτα για όλους εκτός από τον server σου.
Επιθέσεις injection
Ένας επιτιθέμενος τροφοδοτεί ένα πεδίο φόρμας με κακόβουλο κώδικα (όπως κώδικα SQL ή JavaScript). Αν η φόρμα σου δεν ελέγχει και δεν καθαρίζει αυτά τα δεδομένα, ο κακόβουλος κώδικας τρέχει μέσα στο σύστημά σου. Ο έλεγχος εγκυρότητας και το sanitization το αποτρέπουν.
Κλοπή διαπιστευτηρίων
Οι επιτιθέμενοι προσπαθούν να κλέψουν κωδικούς, κλειδιά API ή στοιχεία πληρωμής από φόρμες. Μπορεί να χρησιμοποιήσουν phishing (ψεύτικες φόρμες που μοιάζουν με τη δική σου), malware στη συσκευή του επισκέπτη ή υποκλοπή μη κρυπτογραφημένων δεδομένων. Πολλά επίπεδα (HTTPS, έλεγχος εγκυρότητας, ασφαλής αποθήκευση) προστατεύουν από διαφορετικές γωνίες αυτής της επίθεσης.
Spam και αποστολές από bots
Επιτιθέμενοι (ή απλώς αυτοματοποιημένα scripts) πλημμυρίζουν τη φόρμα σου με ψεύτικες αποστολές. Αυτό χάνει τον χρόνο σου, γεμίζει τη βάση δεδομένων σου και μπορεί να παραμορφώσει τα στατιστικά σου. Η ανίχνευση bots και τα συστήματα CAPTCHA αποτρέπουν τα περισσότερα από αυτά.
Μη εξουσιοδοτημένη πρόσβαση σε αποθηκευμένα δεδομένα
Ακόμα κι αν τα δεδομένα φτάνουν με ασφάλεια και αποθηκεύονται με ασφάλεια, κάποιος με κακές προθέσεις μπορεί να προσπαθήσει να έχει πρόσβαση. Μπορεί να είναι ένας επιτιθέμενος που μπαίνει στη βάση δεδομένων σου, ένας υπάλληλος που δεν πρέπει να βλέπει κάποιες αποστολές ή κάποιος με φυσική πρόσβαση στον server σου. Οι έλεγχοι πρόσβασης και η κρυπτογράφηση περιορίζουν τη ζημιά αν συμβεί.
Από πού να ξεκινήσεις με την ασφάλεια φόρμας
Αν φτιάχνεις φόρμες από το μηδέν, δώσε προτεραιότητα με αυτή τη σειρά:
- Χρησιμοποίησε HTTPS. Κάθε φόρμα πρέπει να τρέχει σε ασφαλή σύνδεση. Αυτό δεν είναι προαιρετικό.
- Έλεγξε και καθάρισε όλα τα δεδομένα εισαγωγής. Έλεγξε ότι τα δεδομένα είναι αυτά που περιμένεις και αφαίρεσε ό,τι φαίνεται ύποπτο πριν το αποθηκεύσεις.
- Έλεγξε ποιος έχει πρόσβαση στις αποστολές. Μόνο όσοι χρειάζεται να δουν τα δεδομένα πρέπει να έχουν πρόσβαση.
- Μάθε ποιοι νόμοι ισχύουν για σένα. Βρες αν ο GDPR, ο CCPA ή άλλοι νόμοι απορρήτου επηρεάζουν τις φόρμες σου. Αν ναι, σχεδίασε τις φόρμες σου ώστε να συμμορφώνονται.
- Όρισε πολιτική διατήρησης δεδομένων. Αποφάσισε πόσο καιρό θα κρατάς τις αποστολές και μετά διέγραψέ τες όταν περάσει αυτός ο χρόνος.
Από εκεί και πέρα, πρόσθεσε προστασία από bots, ταυτοποίηση δύο παραγόντων, κρυπτογράφηση στην αποθήκευση και αναφορές συμμόρφωσης, με βάση τις δικές σου ανάγκες.
Φόρμες στο WEMASY
Στον Δημιουργό ιστοσελίδων του WEMASY μπορείς να προσθέσεις φόρμα στην ιστοσελίδα σου. Η επιλογή των δεδομένων που θα συλλέγεις και η ευθύνη για το πώς τα χειρίζεσαι είναι δική σου.
Για περισσότερες λεπτομέρειες για το τι περιλαμβάνει κάθε πακέτο, δες τη σελίδα τιμών.