Εισαγωγή στην επαλήθευση περιορισμού HTML5
Οι διαδραστικές ιστοσελίδες και εφαρμογές δεν μπορούν να φανταστούν χωρίς μορφές που μας επιτρέπουν σύνδεση με τους χρήστες μας, και στο να αποκτήσουν τα δεδομένα χρειαζόμαστε για να εξασφαλίσουμε ομαλές συναλλαγές μαζί τους. Χρειαζόμαστε έγκυρη είσοδο χρήστη, Ωστόσο, πρέπει να το αποκτήσουμε με τέτοιο τρόπο δεν εμποδίζει χρήστες μας πάρα πολύ.
Παρόλο που μπορούμε να βελτιώσουμε τη χρηστικότητα των μορφών μας με έξυπνα επιλεγμένα μοτίβα σχεδίασης UX, το HTML5 διαθέτει επίσης έναν εγγενή μηχανισμό για επικύρωση περιορισμού που μας επιτρέπει να σφάλματα εισόδου αλιευμάτων δεξιά στο front-end.
Σε αυτή τη θέση, θα επικεντρωθούμε παρέχεται από τον περιηγητή επικύρωση, και εξετάστε πώς μπορούν οι προγραμματιστές των frontend ασφαλής έγκυρη εισαγωγή χρηστών χρησιμοποιώντας HTML5.
Γιατί χρειαζόμαστε επικύρωση εισόδου στο μπροστινό μέρος
Έλεγχος εισόδου έχει δύο κύριους στόχους. Το περιεχόμενο που λαμβάνουμε πρέπει να είναι:
1. Χρήσιμες
Χρειαζόμαστε χρησιμοποιήσιμα δεδομένα με τα οποία μπορούμε να συνεργαστούμε. Πρέπει να κάνουμε τους ανθρώπους να εισέλθουν ρεαλιστικά δεδομένα στη σωστή μορφή. Για παράδειγμα, κανείς που είναι ζωντανός σήμερα γεννήθηκε πριν από 200 χρόνια. Η απόκτηση δεδομένων όπως αυτό μπορεί να φαίνεται αρχικά αστείο, αλλά μακροπρόθεσμα είναι ενοχλητικό και γεμίζει τη βάση δεδομένων μας με άχρηστα δεδομένα.
2. Ασφαλίστε
Όταν αναφερόμαστε στην ασφάλεια, αυτό σημαίνει ότι πρέπει να το κάνουμε να αποτρέψετε την έγχυση κακόβουλου περιεχομένου - είτε σκόπιμα είτε τυχαία.
Η χρησιμότητα (λήψη εύλογων δεδομένων) μπορεί να επιτευχθεί μόνο στην πλευρά του πελάτη, η ομάδα υποστήριξης δεν μπορεί να βοηθήσει πάρα πολύ με αυτό. Για να επιτευχθεί ασφάλεια, οι προγραμματιστές μπροστά και πίσω πρέπει να συνεργαστούν.
Εάν οι προγραμματιστές frontend επικυρώνουν σωστά την είσοδο από την πλευρά του πελάτη, το η ομάδα υποστήριξης θα πρέπει να αντιμετωπίσει πολύ λιγότερες ευπάθειες. Hacking (μια τοποθεσία) συνεπάγεται συχνά υποβάλλοντας επιπλέον δεδομένα, ή δεδομένα σε λάθος μορφή. Οι προγραμματιστές μπορούν να πολεμήσουν τις τρύπες ασφαλείας όπως αυτές, να πολεμήσουν με επιτυχία από το front-end.
Για παράδειγμα, αυτός ο οδηγός ασφαλείας PHP συνιστά να ελέγξετε ό, τι μπορούμε από την πλευρά του πελάτη. Τονίζουν τη σημασία της επικύρωσης των εισερχόμενων συνόλων παρέχοντας πολλά παραδείγματα, όπως:
"Η επικύρωση εισόδου λειτουργεί καλύτερα με εξαιρετικά περιορισμένες τιμές, π.χ. όταν κάτι πρέπει να είναι ένας ακέραιος αριθμός ή αλφαριθμητική συμβολοσειρά ή μια διεύθυνση HTTP."
Στην επικύρωση εισόδου frontend, η δουλειά μας είναι να επιβάλλουν λογικούς περιορισμούς στην είσοδο του χρήστη. Το χαρακτηριστικό επικύρωσης του περιορισμού HTML5 μας παρέχει τα μέσα για να το κάνουμε αυτό.
Επικύρωση περιορισμού HTML5
Πριν από την HTML5, οι προγραμματιστές των frontend περιορίστηκαν σε επικύρωση της εισόδου του χρήστη με JavaScript, η οποία ήταν μια κουραστική και με σφάλματα διαδικασία. Για να βελτιωθεί η επικύρωση της φόρμας πελάτη, το HTML5 εισήγαγε ένα επαλήθευση περιορισμού αλγόριθμος που τρέχει σε σύγχρονα προγράμματα περιήγησης και ελέγχει την εγκυρότητα της υποβαλλόμενης εισόδου.
Για να γίνει η αξιολόγηση, ο αλγόριθμος χρησιμοποιεί το χαρακτηριστικά που σχετίζονται με την επικύρωση των στοιχείων εισόδου, όπως ,
, και
. Αν θέλετε να μάθετε πώς συμβαίνει η επικύρωση των περιορισμών βήμα προς βήμα στο πρόγραμμα περιήγησης, δείτε αυτό το WhatWG doc.
Χάρη στη δυνατότητα επικύρωσης του περιορισμού HTML5, μπορούμε να εκτελέσουμε όλα τυπικές εργασίες επικύρωσης εισόδου στην πλευρά του πελάτη χωρίς JavaScript, αποκλειστικά με HTML5.
Για να εκτελέσετε πιο σύνθετες εργασίες που σχετίζονται με την επικύρωση, η HTML5 μας παρέχει ένα API JavaScript Validation Constraint μπορούμε να χρησιμοποιήσουμε για να ρυθμίσουμε τα προσαρμοσμένα σενάρια επικύρωσης.
Επικυρώστε με τους τύπους εισόδου
Το HTML5 έχει εισαγάγει σημασιολογικών τύπων εισόδου που - εκτός από την ένδειξη της έννοιας του στοιχείου για τους πράκτορες χρήστη - μπορεί επίσης να χρησιμοποιηθεί για επικυρώστε την είσοδο του χρήστη περιορίζοντας τους χρήστες σε μια συγκεκριμένη μορφή εισόδου.
Εκτός από τους τύπους εισόδου που υπήρχαν ήδη πριν από την HTML5 (κείμενο
, Κωδικός πρόσβασης
, υποβάλλουν
, επαναφορά
, ραδιόφωνο
, πλαίσιο ελέγχου
, κουμπί
, κεκρυμμένος
), μπορούμε επίσης να χρησιμοποιήσουμε τα παρακάτω σημασιολογικών τύπων εισόδου HTML5: ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
,τηλ
,url
,αριθμός
,χρόνος
,ημερομηνία
,ημερομηνία ώρα
,ημερομηνία-τοπική
, μήνας
,εβδομάδα
, εύρος
, Ψάξιμο
,χρώμα
.
Μπορούμε να χρησιμοποιήσουμε με ασφάλεια τους τύπους εισόδου HTML5 με παλαιότερα προγράμματα περιήγησης, καθώς θα συμπεριφερθούν ως πεδίου σε προγράμματα περιήγησης που δεν τα υποστηρίζουν.
Ας δούμε τι συμβαίνει όταν ο χρήστης εισάγει λάθος τύπο εισόδου. Ας υποθέσουμε ότι έχουμε δημιουργήσει ένα πεδίο εισαγωγής ηλεκτρονικού ταχυδρομείου με τον ακόλουθο κώδικα:
Όταν ο χρήστης πληκτρολογεί μια συμβολοσειρά που δεν χρησιμοποιεί μια μορφή ηλεκτρονικού ταχυδρομείου, ο αλγόριθμος επικύρωσης περιορισμού δεν υποβάλλει το έντυπο, και επιστρέφει ένα μήνυμα σφάλματος:
Ο ίδιος κανόνας ισχύει και για άλλους τύπους εισόδου, για παράδειγμα για type = "url"
οι χρήστες μπορούν να υποβάλουν μόνο μια είσοδο που ακολουθεί τη μορφή URL (ξεκινά με ένα πρωτόκολλο, όπως http: //
ή ftp: //
).
Ορισμένοι τύποι εισόδου χρησιμοποιούν ένα σχέδιο που ούτε επιτρέπει στους χρήστες να εισάγουν λάθος μορφή εισόδου, για παράδειγμα χρώμα
και εύρος
.
Αν χρησιμοποιούμε το χρώμα
τύπου εισόδου, ο χρήστης είναι υποχρεωμένος είτε να επιλέξει ένα χρώμα από τον επιλογέα χρωμάτων είτε να παραμείνει με το προεπιλεγμένο μαύρο. Το πεδίο εισαγωγής είναι περιορίζεται από το σχεδιασμό, συνεπώς δεν αφήνει μεγάλη πιθανότητα για σφάλμα χρήστη.
Όταν είναι σκόπιμο, αξίζει να εξετάσετε τη χρήση του Ετικέτα HTML που λειτουργεί με παρόμοιο τρόπο με αυτούς τους τύπους εισαγωγής που περιορίζονται από το σχεδιασμό. επιτρέπει στους χρήστες να επιλέξουν από μια αναπτυσσόμενη λίστα.
Χρησιμοποιήστε τα Χαρακτηριστικά επικύρωσης του HTML5
Η χρήση σημασιολογικών τύπων εισαγωγής θέτει ορισμένους περιορισμούς σε ό, τι επιτρέπεται στους χρήστες να υποβάλλουν, αλλά σε πολλές περιπτώσεις θέλουμε να προχωρήσουμε λίγο περισσότερο. Αυτό συμβαίνει όταν το χαρακτηριστικά που σχετίζονται με την επικύρωση απο ετικέτα μπορεί να μας βοηθήσει.
Τα χαρακτηριστικά που σχετίζονται με την επικύρωση ανήκουν σε ορισμένους τύπους εισόδου (δεν μπορούν να χρησιμοποιηθούν όλα τύποι) στις οποίες επιβάλλουν περαιτέρω περιορισμούς.
1. απαιτείται
για να έχετε μια έγκυρη εισαγωγή με όλα τα μέσα
ο απαιτείται
χαρακτηριστικό είναι το πιο γνωστό χαρακτηριστικό επικύρωσης HTML. Είναι ένα boolean χαρακτηριστικό που σημαίνει αυτό δεν έχει καμία αξία, Απλά πρέπει απλά να το τοποθετήσουμε στο εσωτερικό του ετικέτα αν θέλουμε να το χρησιμοποιήσουμε:
Εάν ο χρήστης ξεχάσει να εισαγάγει μια τιμή σε ένα απαιτούμενο πεδίο εισαγωγής, το πρόγραμμα περιήγησης επιστρέφει ένα μήνυμα σφάλματος που τους προειδοποιεί να συμπληρώσουν το πεδίο, και αυτοί δεν μπορεί να υποβάλει το έντυπο μέχρι να παράσχουν έγκυρη είσοδο. Γι 'αυτό είναι σημαντικό πάντα επισημάνετε οπτικά υποχρεωτικά πεδία στους χρήστες.
ο απαιτείται
χαρακτηριστικό μπορεί να είναι που χρησιμοποιούνται μαζί με τους ακόλουθους τύπους εισόδου: κείμενο
, Ψάξιμο
, url
, τηλ
, ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
, Κωδικός πρόσβασης
, ημερομηνία
, ημερομηνία ώρα
, ημερομηνία-τοπική
, μήνας
, εβδομάδα
,χρόνος
, αριθμός
, πλαίσιο ελέγχου
, ραδιόφωνο
, αρχείο
, plus με το και
Ετικέτες HTML.
2. min
, Μέγιστη
και βήμα
για επικύρωση αριθμών
ο min
, Μέγιστη
και βήμα
ιδιότητες που μας επιτρέπουν να θέσει περιορισμούς στα πεδία εισαγωγής αριθμών. Μπορούν να χρησιμοποιηθούν μαζί με το εύρος
, αριθμός
, ημερομηνία
, μήνας
, εβδομάδα
, ημερομηνία ώρα
, ημερομηνία-τοπική
, και χρόνος
τύπους εισόδου.
ο min
και Μέγιστη
τα χαρακτηριστικά παρέχουν έναν πολύ εύκολο τρόπο αποκλείουν παράλογα δεδομένα. Για παράδειγμα, το παρακάτω παράδειγμα υποχρεώνει τους χρήστες να υποβάλουν μια ηλικία μεταξύ 18 και 120 ετών.
Όταν ο αλγόριθμος επικύρωσης περιορισμού προσκρούει σε μια είσοδο χρήστη μικρότερη από την min
, ή μεγαλύτερο από το Μέγιστη
αξία, εμποδίζει την πρόσβαση στο backend και επιστρέφει ένα μήνυμα σφάλματος.
ο βήμα
Χαρακτηριστικό καθορίζει ένα αριθμητικό διάστημα μεταξύ των νόμιμων τιμών ενός πεδίου αριθμητικής εισόδου. Για παράδειγμα, αν θέλουμε οι χρήστες να επιλέξουν μόνο από τα χρονικά διαστήματα, μπορούμε να προσθέσουμε το βήμα = "4"
χαρακτηριστικό στο πεδίο. Στο παρακάτω παράδειγμα χρησιμοποίησα το αριθμός
τύπου εισόδου, καθώς δεν υπάρχει τύπος = "έτος"
σε HTML5.
Με τους προκαθορισμένους περιορισμούς, οι χρήστες μπορούν να επιλέξουν μόνο από τα χρονικά διαστήματα μεταξύ 1972 και 2016 εάν χρησιμοποιούν το μικρό βέλος που έρχεται με το αριθμός
τύπου εισόδου. Μπορούν επίσης να πληκτρολογήσουν μια τιμή μη αυτόματα στο πεδίο εισαγωγής, αλλά σε περίπτωση που δεν πληρούνται οι περιορισμοί, το πρόγραμμα περιήγησης θα επιστρέψει ένα μήνυμα σφάλματος.
3. μέγιστο μήκος
για την επικύρωση μήκους κειμένου
ο μέγιστο μήκος
χαρακτηριστικό καθιστά δυνατή την ορίστε ένα μέγιστο μήκος χαρακτήρων για πεδία εισαγωγής κειμένου. Μπορεί να χρησιμοποιηθεί μαζί με το κείμενο
, Ψάξιμο
, url
, τηλ
, ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
και Κωδικός πρόσβασης
τύποι εισόδου και με το Ετικέτα HTML.
ο μέγιστο μήκος
χαρακτηριστικό μπορεί να είναι μια εξαιρετική λύση για πεδία τηλεφωνικού αριθμού που δεν μπορούν να έχουν περισσότερους από έναν ορισμένο αριθμό χαρακτήρων ή για φόρμες επαφών όπου δεν θέλουμε οι χρήστες να γράφουν περισσότερα από ένα ορισμένο μήκος.
Το απόσπασμα κώδικα παρακάτω δείχνει ένα παράδειγμα για το τελευταίο, περιορίζει τα μηνύματα χρήστη σε 500 χαρακτήρες.
ο μέγιστο μήκος
Χαρακτηριστικό δεν επιστρέφει μήνυμα σφάλματος, αλλά το πρόγραμμα περιήγησης απλά δεν επιτρέπει στους χρήστες να πληκτρολογούν περισσότερα από τον καθορισμένο αριθμό χαρακτήρων. Αυτός είναι ο λόγος για τον οποίο είναι ζωτικής σημασίας ενημερώστε τους χρήστες σχετικά με τον περιορισμό, διαφορετικά δεν θα καταλάβουν γιατί δεν μπορούν να συνεχίσουν με την πληκτρολόγηση.
4. πρότυπο
για την επικύρωση του Regex
ο πρότυπο
χαρακτηριστικό μας επιτρέπουν να χρησιμοποιήστε τακτικές εκφράσεις στη διαδικασία επικύρωσης εισόδου. Μια κανονική έκφραση είναι a προκαθορισμένο σύνολο χαρακτήρων που αποτελούν ένα ορισμένο μοτίβο. Μπορούμε να το χρησιμοποιήσουμε είτε για να αναζητήσουμε συμβολοσειρές που ακολουθούν το μοτίβο είτε για να επιβάλουμε μια συγκεκριμένη μορφή που ορίζεται από το μοτίβο.
Με το πρότυπο
χαρακτηριστικό που μπορούμε να κάνουμε το τελευταίο - να περιορίσουμε τους χρήστες να υποβάλουν τα στοιχεία τους σε μορφή που να αντιστοιχεί στη δεδομένη κανονική έκφραση.
ο πρότυπο
χαρακτηριστικό έχει πολλές περιπτώσεις χρήσης, αλλά μπορεί να είναι ιδιαίτερα χρήσιμο όταν θέλουμε επικυρώστε ένα πεδίο κωδικού πρόσβασης.
Το παρακάτω παράδειγμα απαιτεί από τους χρήστες να εισάγουν έναν κωδικό με ελάχιστο μήκος 8 χαρακτήρων και να περιέχει τουλάχιστον ένα γράμμα και έναν αριθμό (πηγή του regex που χρησιμοποίησα).
Λίγα άλλα πράγματα
Σε αυτό το άρθρο, εξετάσαμε πώς να χρησιμοποιήσουμε το επικύρωση της φόρμας που παρέχεται από τον browser που παρέχεται από τον αλγόριθμο επικύρωσης εγγενών περιορισμών του HTML5. Για τη δημιουργία των προσαρμοσμένων σεναρίων επαλήθευσης, πρέπει να χρησιμοποιήσουμε το API Validation Constraint που μπορεί να είναι το επόμενο βήμα στην εξειδίκευση των δεξιοτήτων επικύρωσης μορφής.
Οι φόρμες HTML5 είναι προσβάσιμες με βοηθητικές τεχνολογίες, οπότε δεν πρέπει απαραίτητα να χρησιμοποιήσουμε το aria-απαιτείται
Το χαρακτηριστικό ARIA να επισημάνει τα απαιτούμενα πεδία εισαγωγής για συσκευές ανάγνωσης οθόνης. Ωστόσο, μπορεί να είναι χρήσιμο να προσθέσετε υποστήριξη προσβασιμότητας για παλαιότερα προγράμματα περιήγησης. Είναι επίσης δυνατό να να εξαιρεθείτε από την επικύρωση των περιορισμών προσθέτοντας το ανυπομονεί
boolean χαρακτηριστικό στο στοιχείο.