Μια φόρμα χωρίς προστασία μαζεύει spam, και μια φόρμα με προστασία που δεν κάνει τίποτα μαζεύει το ίδιο spam ενώ σας δίνει ψεύτικη αίσθηση ασφάλειας. Ο δωρεάν έλεγχος προστασίας φόρμας απαντά στο πρώτο μισό αυτής της ερώτησης: ποια προστασία από bots παραδίδει η σελίδα; Αυτό το άρθρο εξηγεί πώς διαβάζετε το αποτέλεσμα και πού σταματά η απάντησή του.
Τι κάνει ο έλεγχος
Εισάγετε τη διεύθυνση μιας σελίδας με φόρμα. Ο έλεγχος διαβάζει πρώτα το robots.txt του ιστότοπου· αν απαγορεύει την ανάκτηση ή δεν μπορεί να διαβαστεί, ο έλεγχος σταματά εκεί. Διαφορετικά ανακτά αυτή τη μία σελίδα, με σαφές όνομα (SilentShieldFormCheck), χωρίς cookies, με το πολύ τρεις ανακατευθύνσεις και το πολύ 1 MB. Στη συνέχεια αναζητά στο HTML τα γνωρίσματα γνωστών παρόχων: διευθύνσεις σεναρίων, κλάσεις στοιχείων και ονόματα πεδίων. Γνωρίζει τα Google reCAPTCHA, hCaptcha, Cloudflare Turnstile, Friendly Captcha και SilentShield. Δεν αποθηκεύεται τίποτα, ούτε η διεύθυνση ούτε το αποτέλεσμα.
Τα πέντε αποτελέσματα
- Κάθε φόρμα φέρει ένα γνώρισμα. Σε κάθε φόρμα που βρέθηκε, το HTML περιέχει το γνώρισμα ενός γνωστού παρόχου. Η προστασία είναι τοποθετημένη στη φόρμα.
- Μόνο ορισμένες φόρμες φέρουν γνώρισμα. Η λίστα δείχνει σε ποιες λείπει.
- Φορτώνεται σενάριο παρόχου, αλλά καμία φόρμα δεν φέρει γνώρισμα. Η σελίδα φορτώνει το σενάριο ενός παρόχου, όμως καμία από τις φόρμες της δεν περιέχει γνώρισμα. Το αν και ποια φόρμα προστατεύει το σενάριο δεν φαίνεται χωρίς εκτέλεση JavaScript.
- Δεν εντοπίστηκε τίποτα στο παραδοθέν HTML. Η σελίδα έχει φόρμες, αλλά ούτε γνώρισμα ούτε σενάριο γνωστού παρόχου.
- Καμία φόρμα στο παραδοθέν HTML. Οι φόρμες ίσως δημιουργούνται από σενάριο στον περιηγητή, και αυτό ο έλεγχος δεν το βλέπει.
Τι δεν βλέπει ο έλεγχος
Ο έλεγχος διαβάζει το HTML που παραδίδει ο διακομιστής σας. Δεν εκτελεί JavaScript. Από αυτό προκύπτουν τέσσερα πράγματα που πρέπει να έχετε υπόψη.
- Μια φόρμα ή ένα widget που δημιουργεί ένα σενάριο στον περιηγητή δεν υπάρχει για τον έλεγχο. Το «δεν εντοπίστηκε τίποτα» σημαίνει επομένως «τίποτα στο παραδοθέν HTML», ποτέ «απροστάτευτη».
- Δεν μπορεί να δει αν ο διακομιστής σας επαληθεύει την απάντηση. Ένα widget στη φόρμα χωρίς έλεγχο στον διακομιστή δεν σταματά κανέναν.
- Προστασία που βρίσκεται μπροστά από τη σελίδα, όπως ένα τείχος προστασίας ή ένα όριο ρυθμού, δεν αφήνει κανένα ίχνος στο HTML.
- Σελίδες πίσω από σύνδεση είναι εκτός εμβέλειας, επειδή ο έλεγχος ανακτά μόνο δημόσιες σελίδες, χωρίς cookies.
Ένα πραγματικό παράδειγμα: η δική μας σελίδα εγγραφής
Όταν εκτελέσαμε τον έλεγχο στη δική μας σελίδα εγγραφής, η πρώτη έκδοση ανέφερε δύο παρόχους των οποίων το σενάριο «φορτωνόταν». Η σελίδα δεν φορτώνει κανέναν από τους δύο. Η αιτία βρισκόταν στα δεδομένα της ίδιας της σελίδας: μια καταχώριση μενού με το κείμενο «Εναλλακτική του hCaptcha.» βρισκόταν σε ένα ενσωματωμένο σενάριο και ο έλεγχος πήρε τη λέξη για κώδικα παρόχου. Αλλάξαμε τον κανόνα: ένα ενσωματωμένο σενάριο μετρά μόνο όταν καλεί έναν πάροχο (κλήση render ή execute), και η ίδια σελίδα αναφέρει πλέον ότι δεν εντοπίστηκε τίποτα στο παραδοθέν HTML. Το δίδαγμα είναι ο λόγος που ο έλεγχος κατονομάζει μόνο γεγονότα: μια λέξη σε μια σελίδα δεν είναι πάροχος.
Τι να κάνετε με το αποτέλεσμα
- Αν υπάρχει γνώρισμα, δοκιμάστε το άλλο μισό: υποβάλετε τη φόρμα απ' έξω με απούσα ή λανθασμένη απάντηση και δείτε αν ο διακομιστής σας την απορρίπτει. Ένα γνώρισμα δείχνει μόνο ότι ένα widget είναι τοποθετημένο.
- Αν φορτώνεται σενάριο παρόχου χωρίς γνώρισμα στη φόρμα, δείτε πώς προσαρτάται το widget. Πολλές διαμορφώσεις το προσθέτουν στον περιηγητή μόνο αφού φορτωθεί η σελίδα.
- Αν δεν εντοπίστηκε τίποτα, μην συμπεράνετε ότι η φόρμα είναι ανοιχτή. Δείτε τα αρχεία καταγραφής του διακομιστή σας και τι φτάνει πραγματικά, και ελέγξτε αν η προστασία λειτουργεί στον διακομιστή ή μπροστά από τη σελίδα.
- Αν αποφασίσετε να αντικαταστήσετε μια ορατή πρόκληση, συγκρίνετε τις επιλογές στη σελίδα σύγκριση CAPTCHA και δείτε με τον υπολογιστή μετατροπών τι σας κοστίζει μια ορατή πρόκληση.
Ο έλεγχος είναι μια πρώτη ματιά στο παραδοθέν HTML, όχι έλεγχος ασφαλείας (audit). Χρησιμοποιήστε τον για να δείτε τι λέει η σελίδα σας για τον εαυτό της και δοκιμάστε τα υπόλοιπα υποβάλλοντας τη φόρμα.