Βασικά ασφάλειας φόρμας: προστασία των δεδομένων των χρηστών

Μάθε τι κάνει μια φόρμα ασφαλή και γιατί μετράει η προστασία των δεδομένων των χρηστών. Κατάλαβε τα βασικά πριν μπεις βαθύτερα.

Πρόχειρο

Κάθε φόρμα που βάζεις online είναι πιθανό σημείο εισόδου για επιτιθέμενους. Η ασφάλεια της φόρμας δεν γίνεται τυχαία και δεν μπορείς να την προσπεράσεις. Μία φόρμα χωρίς προστασία μπορεί να εκθέσει ονόματα, email, τηλέφωνα, στοιχεία πληρωμής ή κωδικούς των επισκεπτών σου σε οποιονδήποτε θέλει να την εκμεταλλευτεί.

Τα βασικά της ασφάλειας φόρμας καλύπτουν τις βασικές πρακτικές που κρατούν τα δεδομένα των χρηστών ασφαλή. Αυτό το άρθρο εξηγεί πώς μοιάζει μια ασφαλής φόρμα, γιατί μετράει κάθε επίπεδο προστασίας και πώς δουλεύουν μαζί τα κομμάτια για να προστατεύεται η πληροφορία των επισκεπτών σου.

Τι θα μάθεις: τις βασικές αρχές της ασφάλειας φόρμας, πώς κινούνται τα δεδομένα μέσα από μια φόρμα, ποιες επιθέσεις στοχεύουν φόρμες χωρίς προστασία και πού να εστιάσεις πρώτα τις προσπάθειές σου.

Τι είναι η ασφάλεια φόρμας;

Η ασφάλεια φόρμας είναι η πρακτική του να σχεδιάζεις και να λειτουργείς φόρμες ώστε τα δεδομένα των χρηστών να μένουν προστατευμένα, από τη στιγμή που τα γράφει κάποιος μέχρι την αποθήκευση και τη διαγραφή. Περιλαμβάνει πολλά επίπεδα: τον κώδικα που επεξεργάζεται τη φόρμα, τη σύνδεση ανάμεσα στον επισκέπτη και τον server, τους κανόνες για το ποια δεδομένα συλλέγεις και πόσο καιρό τα κρατάς.

Μια ασφαλής φόρμα κάνει τρία πράγματα:

  1. Ελέγχει ό,τι μπαίνει. Ελέγχει ότι τα δεδομένα είναι πράγματι αυτό που περιμένεις (ένα email έχει μορφή email, ένα τηλέφωνο έχει μόνο αριθμούς κ.λπ.). Αυτό πιάνει και τα ατυχήματα και τις εσκεμμένες επιθέσεις.
  2. Προστατεύει τα δεδομένα στη μεταφορά. Χρησιμοποιεί κρυπτογράφηση, ώστε τα δεδομένα που πηγαίνουν από τον browser του επισκέπτη στον server σου να μη μπορούν να διαβαστούν ή να υποκλαπούν από κανέναν άλλον.
  3. Αποθηκεύει τα δεδομένα με ασφάλεια. Κρατά τις πληροφορίες προστατευμένες αφού αποθηκευτούν, ακολουθεί τους νόμους για το ποιος μπορεί να έχει πρόσβαση και πόσο καιρό να τις κρατάς και εμποδίζει μη εξουσιοδοτημένους να δουν ό,τι έχει σταλεί.

Η ασφάλεια φόρμας δεν είναι ένα μόνο χαρακτηριστικό. Συνδυάζει τεχνικές πρακτικές, νομική συμμόρφωση και λειτουργική πειθαρχία.

Γιατί η ασφάλεια φόρμας μετράει για την επιχείρησή σου

Υπάρχουν τρεις λόγοι που η ασφάλεια φόρμας δεν διαπραγματεύεται:

Εμπιστοσύνη επισκεπτών και φήμη της επιχείρησης

Όταν κάποιος συμπληρώνει φόρμα στην ιστοσελίδα σου, σου εμπιστεύεται πληροφορίες που δεν μοιράζεται δημόσια. Αν αυτές οι πληροφορίες κλαπούν ή διαρρεύσουν, χάνεις την εμπιστοσύνη τους και πιθανούς πελάτες. Μια παραβίαση δεδομένων έχει κόστος φήμης που είναι δύσκολο να ανακτηθεί. Οι άνθρωποι θυμούνται όταν μια επιχείρηση αποτυγχάνει να προστατεύσει τις πληροφορίες τους.

Νομικές και κανονιστικές απαιτήσεις

Ανάλογα με το πού βρίσκονται οι επισκέπτες σου και ποιες πληροφορίες συλλέγεις, μπορεί να υποχρεούσαι από τον νόμο να προστατεύεις αυτά τα δεδομένα. Ο GDPR (για Ευρωπαίους επισκέπτες), ο CCPA (για κατοίκους Καλιφόρνιας) και αμέτρητοι άλλοι νόμοι απορρήτου θέτουν συγκεκριμένα πρότυπα ασφάλειας. Η παραβίαση αυτών των κανόνων μπορεί να οδηγήσει σε πρόστιμα, αγωγές και νομικές κυρώσεις.

Πρόληψη της χρήσης της φόρμας σου ως όπλου από επιτιθέμενους

Μια φόρμα χωρίς προστασία δεν είναι μόνο κίνδυνος κλοπής δεδομένων. Οι επιτιθέμενοι μπορούν επίσης να τη χρησιμοποιήσουν για να εισάγουν κακόβουλο κώδικα, να καταλάβουν συνεδρίες επισκεπτών, να ξεγελάσουν τη βάση δεδομένων σου ώστε να εκτελέσει εντολές ή να γεμίσουν το inbox σου με χιλιάδες ψεύτικες αποστολές. Κάθε είδος επίθεσης προκαλεί διαφορετική ζημιά.

Πώς ρέουν τα δεδομένα της φόρμας μέσα στο σύστημά σου

Η κατανόηση της ροής σε βοηθά να δεις πού μετράει περισσότερο η ασφάλεια. Να τι γίνεται όταν κάποιος στέλνει μια φόρμα:

  1. Ο επισκέπτης γράφει δεδομένα στον browser. Γράφει στα πεδία της φόρμας. Σε αυτό το σημείο, τα δεδομένα βρίσκονται μόνο στη συσκευή του.
  2. Ο επισκέπτης στέλνει τη φόρμα. Ο browser μαζεύει όλα τα δεδομένα και τα στέλνει στον server σου.
  3. Ο server σου τα λαμβάνει. Ο επεξεργαστής της φόρμας ελέγχει τα δεδομένα και αποφασίζει τι να κάνει με αυτά.
  4. Τα δεδομένα αποθηκεύονται. Μπαίνουν στη βάση δεδομένων σου, στο email ή σε άλλο σύστημα όπου κρατάς τις αποστολές.
  5. Εσύ ή κάποιος άλλος τα ανακτά αργότερα. Μέλη της ομάδας έχουν πρόσβαση στα δεδομένα που στάλθηκαν, για να απαντήσουν σε αιτήματα, να επεξεργαστούν παραγγελίες ή να αναλύσουν τις πληροφορίες.
  6. Τελικά διαγράφονται. Κάποια στιγμή τα δεδομένα πρέπει να αφαιρεθούν σύμφωνα με την πολιτική διατήρησης δεδομένων σου.

Οι απειλές ασφαλείας μπορούν να εμφανιστούν σε οποιοδήποτε βήμα. Ο κωδικός ενός επισκέπτη θα μπορούσε να υποκλαπεί καθώς ταξιδεύει στο διαδίκτυο. Ένας επιτιθέμενος θα μπορούσε να ξεγελάσει τη φόρμα σου να αποθηκεύσει κακόβουλο κώδικα. Ένας υπάλληλος με πρόσβαση στις αποστολές θα μπορούσε να διαρρεύσει τα δεδομένα. Ή θα μπορούσες να κρατάς πληροφορίες περισσότερο απ' όσο επιτρέπει ο νόμος.

Τα βασικά επίπεδα ασφάλειας φόρμας

Ασφάλεια μεταφοράς (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 σου. Οι έλεγχοι πρόσβασης και η κρυπτογράφηση περιορίζουν τη ζημιά αν συμβεί.

Από πού να ξεκινήσεις με την ασφάλεια φόρμας

Αν φτιάχνεις φόρμες από το μηδέν, δώσε προτεραιότητα με αυτή τη σειρά:

  1. Χρησιμοποίησε HTTPS. Κάθε φόρμα πρέπει να τρέχει σε ασφαλή σύνδεση. Αυτό δεν είναι προαιρετικό.
  2. Έλεγξε και καθάρισε όλα τα δεδομένα εισαγωγής. Έλεγξε ότι τα δεδομένα είναι αυτά που περιμένεις και αφαίρεσε ό,τι φαίνεται ύποπτο πριν το αποθηκεύσεις.
  3. Έλεγξε ποιος έχει πρόσβαση στις αποστολές. Μόνο όσοι χρειάζεται να δουν τα δεδομένα πρέπει να έχουν πρόσβαση.
  4. Μάθε ποιοι νόμοι ισχύουν για σένα. Βρες αν ο GDPR, ο CCPA ή άλλοι νόμοι απορρήτου επηρεάζουν τις φόρμες σου. Αν ναι, σχεδίασε τις φόρμες σου ώστε να συμμορφώνονται.
  5. Όρισε πολιτική διατήρησης δεδομένων. Αποφάσισε πόσο καιρό θα κρατάς τις αποστολές και μετά διέγραψέ τες όταν περάσει αυτός ο χρόνος.

Από εκεί και πέρα, πρόσθεσε προστασία από bots, ταυτοποίηση δύο παραγόντων, κρυπτογράφηση στην αποθήκευση και αναφορές συμμόρφωσης, με βάση τις δικές σου ανάγκες.

Φόρμες στο WEMASY

Στον Δημιουργό ιστοσελίδων του WEMASY μπορείς να προσθέσεις φόρμα στην ιστοσελίδα σου. Η επιλογή των δεδομένων που θα συλλέγεις και η ευθύνη για το πώς τα χειρίζεσαι είναι δική σου.

Για περισσότερες λεπτομέρειες για το τι περιλαμβάνει κάθε πακέτο, δες τη σελίδα τιμών.

Συχνές ερωτήσεις

Αρκεί το HTTPS για να προστατέψει μια φόρμα;
Το HTTPS προστατεύει τα δεδομένα όσο ταξιδεύουν στον server σου, αλλά είναι μόνο ένα επίπεδο. Χρειάζεσαι επίσης έλεγχο εγκυρότητας (για να μη αποθηκευτούν κακόβουλα δεδομένα), ελέγχους πρόσβασης (για να περιορίσεις ποιος βλέπει τις αποστολές) και πολιτικές διατήρησης (για να διαγράφεις δεδομένα όταν δεν τα χρειάζεσαι πια). Σκέψου το HTTPS ως προστασία της παράδοσης του δέματος. Τα άλλα επίπεδα προστατεύουν ό,τι γίνεται με το δέμα όταν φτάσει.
Ποια είναι η διαφορά ανάμεσα στην κρυπτογράφηση στη μεταφορά και στην κρυπτογράφηση στην αποθήκευση;
Η κρυπτογράφηση στη μεταφορά προστατεύει τα δεδομένα όσο κινούνται από τον browser του επισκέπτη στον server σου (αυτό το κάνει το HTTPS). Η κρυπτογράφηση στην αποθήκευση προστατεύει τα δεδομένα αφού αποθηκευτούν στη βάση δεδομένων ή στο σύστημα αρχείων σου. Και τα δύο έχουν σημασία. Το HTTPS εμποδίζει επιτιθέμενους στο δίκτυο να διαβάσουν τα δεδομένα σου. Η κρυπτογράφηση στην αποθήκευση εμποδίζει επιτιθέμενους που μπαίνουν στον server ή στη βάση δεδομένων σου να διαβάσουν ό,τι είναι αποθηκευμένο εκεί.
Χρειάζεται να ελέγχω τα δεδομένα αν χρησιμοποιώ HTTPS;
Ναι. Το HTTPS προστατεύει μόνο τα δεδομένα στη μεταφορά. Ένας επισκέπτης μπορεί ακόμα να κάνει τυπογραφικό λάθος σε πεδίο φόρμας ή ένας επιτιθέμενος να στείλει εσκεμμένα κακόβουλα δεδομένα ακόμα και σε ασφαλή σύνδεση. Ο έλεγχος εγκυρότητας ελέγχει τι είναι τα δεδομένα και εμποδίζει να αποθηκευτούν χαλασμένα ή επικίνδυνα δεδομένα. Το HTTPS και ο έλεγχος εγκυρότητας έχουν διαφορετικό σκοπό και χρειάζονται και τα δύο.
Τι να κάνω αν υποψιάζομαι ότι μια φόρμα έχει παραβιαστεί;
Πρώτα, βγάλε τη φόρμα εκτός λειτουργίας αμέσως. Σταμάτα να δέχεσαι νέες αποστολές. Μετά ερεύνησε ποια δεδομένα μπορεί να κλάπηκαν και ενημέρωσε τους επηρεασμένους επισκέπτες. Εξέτασε τις πρακτικές ασφαλείας σου για να δεις πώς έγινε η παραβίαση και διόρθωσε την ευπάθεια πριν επαναφέρεις τη φόρμα. Κάποιες καταστάσεις μπορεί να απαιτούν ενημέρωση ρυθμιστικών αρχών ή αστυνομίας, ανάλογα με τον τύπο των δεδομένων και την τοποθεσία σου.
Χρειάζομαι ειδική ασφάλεια για διαφορετικούς τύπους φορμών;
Ναι. Μια φόρμα επικοινωνίας που συλλέγει μόνο ονόματα και email έχει χαμηλότερες απαιτήσεις ασφαλείας από μια φόρμα που συλλέγει στοιχεία πληρωμής ή κωδικούς. Οι φόρμες πληρωμής πρέπει να συμμορφώνονται με τα πρότυπα PCI DSS. Οι φόρμες σύνδεσης χρειάζονται ισχυρή ταυτοποίηση και διαχείριση συνεδριών. Όσο πιο ευαίσθητα τα δεδομένα, τόσα περισσότερα επίπεδα ασφάλειας χρειάζεσαι.
Κάθε πότε να ελέγχω τις φόρμες μου για ασφάλεια;
Τουλάχιστον, έλεγχε τις φόρμες σου κάθε φορά που κάνεις αλλαγές σε αυτές. Πολλές παραβιάσεις ασφαλείας γίνονται αφού μια ενημέρωση φέρνει νέα ευπάθεια. Οι μεγαλύτερες επιχειρήσεις τρέχουν επίσης τακτικούς ελέγχους ασφαλείας (τριμηνιαίους ή ετήσιους) για να δοκιμάσουν αδυναμίες. Ξεκίνα με έλεγχο μετά από κάθε αλλαγή. Όσο οι φόρμες σου γίνονται πιο σύνθετες, πρόσθεσε τακτικές προγραμματισμένες αναθεωρήσεις.

Βάλ’ το αμέσως σε εφαρμογή
στη δική σου ιστοσελίδα.

Ξεκίνα δωρεάν με το WEMASY και φτιάξε τη σελίδα σου σε λίγα λεπτά.