Úvod do overenia obmedzenia HTML5
Interaktívne webové stránky a aplikácie sa nedajú predstaviť bez formulárov, ktoré nám umožňujú spojiť s našimi používateľmi, a získať údaje potrebujeme, aby sme s nimi zabezpečili hladké transakcie. Potrebujeme platný vstup používateľa, ale musíme ho nadobudnúť takým spôsobom neporušuje našich používateľov príliš veľa.
Zatiaľ čo môžeme zlepšiť použiteľnosť našich formulárov pomocou inteligentne vybraných návrhových vzorov UX, HTML5 má tiež natívny mechanizmus na overovanie platnosti, ktorý nám umožňuje chyby vstupného chyby priamo v prednej časti.
V tomto príspevku sa budeme sústreďovať preverovanie obmedzenia poskytované prehliadačom, a pozrite sa, ako môžu vývojári frontendu zabezpečiť platný vstup používateľa pomocou HTML5.
Prečo potrebujeme validáciu vstupného rozhrania
Vstupné overenie má dva hlavné ciele. Obsah, ktorý dostávame, musí byť:
1. Užitočné
Potrebujeme použiteľné dáta, s ktorými môžeme pracovať. Musíme prinútiť ľudí vstúpiť realistické údaje v správnom formáte. Napríklad nikto, kto žije dnes, sa narodil pred 200 rokmi. Získanie takýchto údajov sa môže na prvýkrát zdajú byť zábavné, ale z dlhodobého hľadiska je to nepríjemné a našu databázu obsadzuje zbytočnými dátami.
2. Zabezpečte
Pri odvolávaní sa na bezpečnosť to znamená, že musíme zabrániť vniknutiu škodlivého obsahu - či už úmyselne alebo náhodou.
Je možné dosiahnuť užitočnosť (získavanie primeraných údajov) len na strane klienta, tím backendov nemôže príliš pomôcť. Dosiahnuť zabezpečenia, vývojári na front a backend potrebujú spolupracovať.
Ak vývojári frontend správne overujú vstup na strane klienta, backendový tím sa bude musieť zaoberať oveľa menej zraniteľnými miestami. Hackovanie (stránka) často zahŕňa odosielanie ďalších údajov, alebo údaje v nesprávnom formáte. Vývojári môžu bojovať s bezpečnostnými dierami, ako sú tieto, úspešne bojovať z front-end.
Napríklad táto bezpečnostná príručka PHP odporúča skontrolovať všetko, čo môžeme na strane klienta. Zdôrazňujú dôležitosť validácie vstupu frontend pomocou mnohých príkladov, ako napríklad:
"Overovanie vstupov funguje najlepšie s extrémne obmedzenými hodnotami, napríklad keď niečo musí byť celé číslo alebo alfanumerický reťazec alebo HTTP URL."
Pri overovaní vstupov frontend je našou úlohou ukladať primerané obmedzenia na vstup používateľa. Funkcia overenia obmedzenia HTML5 nám poskytuje prostriedky na to.
Validácia obmedzenia HTML5
Pred vývojom HTML5 boli vývojári frontend obmedzené na overenie vstupného užívateľa pomocou jazyka JavaScript, čo bolo zdĺhavé a náchylné na chyby. Na zlepšenie validácie formulára na strane klienta HTML5 zaviedol a overenie obmedzenia algoritmus, ktorý beží v moderných prehliadačoch a kontroluje platnosť odoslaného vstupu.
Ak chcete vykonať hodnotenie, algoritmus používa validačné atribúty vstupných prvkov, ako napr ,
, a
. Ak chcete vedieť, ako sa stane krok za krokom validácia obmedzenia v prehliadači, prečítajte si tento dokument WhatWG.
Vďaka funkcii overovania pravidiel HTML5 môžeme vykonať všetky štandardné úlohy overovania vstupov na strane klienta bez jazyka JavaScript, iba s HTML5.
Ak chcete vykonať zložitejšie úlohy súvisiace s validáciou, HTML5 nám poskytuje a Rozhranie API pre validáciu obmedzení JavaScript môžeme použiť na nastavenie vlastných skriptov na overenie.
Overenie pomocou sémantických typov vstupov
HTML5 predstavil sémantických typov vstupov ktoré okrem uvedenia významu prvku pre užívateľských agentov môžu byť tiež použité overiť vstup používateľa obmedzením používateľov na určitý vstupný formát.
Okrem typov vstupov, ktoré už existovali pred HTML5 (text
, heslo
, Predložiť
, resetovať
, rádio
, checkbox
, gombík
, skrytý
), môžeme použiť aj nasledujúce sémantické typy vstupov HTML5: e-mail
,tel
,url
,číslo
,čas
,dátum
,Dátum Čas
,datetime-local
, mesiac
,týždeň
, rozsah
, Vyhľadávanie
,farba
.
Môžeme bezpečne použiť vstupné typy HTML5 so staršími prehliadačmi, pretože sa budú chovať ako v prehliadačoch, ktoré ich nepodporujú.
Pozrime sa, čo sa stane, keď používateľ zadá nesprávny typ vstupu. Povedzme, že sme vytvorili e-mailové pole s nasledujúcim kódom:
Keď používateľ zadá reťazec, ktorý nepoužíva formát e-mailu, algoritmus overenia obmedzenia formulár nepredloží, a zobrazí chybové hlásenie:
Rovnaké pravidlo platí aj pre iné typy vstupov, napríklad pre type = "url"
môžu používatelia odoslať iba vstup, ktorý nasleduje po formáte URL (začína sa protokolom, ako je napr http: //
alebo ftp: //
).
Niektoré typy vstupov používajú dizajn neumožňuje ani používateľom zadávať nesprávny vstupný formát, napríklad farba
a rozsah
.
Ak použijeme farba
typ vstupu je používateľ obmedzený buď na výber farby zo výberu farieb alebo na zostavení s predvolenou čiernou farbou. Vstupné pole je obmedzené konštrukciou, preto neopúšťa veľkú šancu na chybu používateľa.
Keď je to vhodné, stojí za to zvážiť použitie Značka HTML, ktorá funguje podobne ako tie typy vstupov obmedzené podľa návrhu; umožňuje používateľom vybrať si z rozbaľovacieho zoznamu.
Použite atribúty Validácia HTML5
Použitie typov sémantických vstupov nastavuje určité obmedzenia na to, čo môžu používatelia odosielať, ale v mnohých prípadoch chceme ísť trochu ďalej. Toto je prípad, kedy atribúty súvisiace s validáciou z značka nám môže pomôcť.
Atribúty súvisiace s validáciou patria k určitým typom vstupov (nemôžu byť použité na všetko typy), na ktoré ukladajú ďalšie obmedzenia.
1. požadovaný
na získanie platného vstupu všetkými prostriedkami
požadovaný
atribút je najznámejší atribút validácie HTML. Je to booleovský atribút čo to znamená nemá žiadnu hodnotu, jednoducho ju musíme vložiť do vnútra značku, ak ju chceme použiť:
Ak používateľ zabudne zadať hodnotu do požadovaného vstupného poľa, prehliadač zobrazí chybové hlásenie že ich varuje, aby vyplnili pole, a oni nemôže odoslať formulár kým neposkytnú platný vstup. Preto je dôležité vždy vizuálne povinné polia používateľom.
požadovaný
atribút môže byť použitý spolu s nasledujúcimi vstupnými typmi: text
, Vyhľadávanie
, url
, tel
, e-mail
, heslo
, dátum
, Dátum Čas
, datetime-local
, mesiac
, týždeň
,čas
, číslo
, checkbox
, rádio
, súbor
, plus s a
HTML tagy.
2. min
, max
a krok
pre overovanie čísel
min
, max
a krok
atribúty nám umožňujú obmedzenia počtu vstupných polí. Môžu byť použité spolu s rozsah
, číslo
, dátum
, mesiac
, týždeň
, Dátum Čas
, datetime-local
, a čas
typy vstupov.
min
a max
atribúty poskytujú skvelý spôsob, ako ľahko vylúčiť neprimerané údaje. Napríklad uvedený príklad núti používateľov, aby predložili vek medzi 18 a 120 rokov.
Keď algoritmus validácie obmedzenia narazí na vstup používateľa menšie ako min
, alebo väčší ako max
hodnotu, zabraňuje tomu, aby sa dostal k zadnej strane a vráti chybové hlásenie.
krok
atribút určuje číselný interval medzi zákonnými hodnotami vstupného poľa. Napríklad, ak chceme, aby používatelia zvolili iba z prechodných rokov, môžeme ich pridať krok = "4"
atribút do poľa. V nižšie uvedenom príklade som použil číslo
typ vstupu, pretože neexistuje žiadny type = "year"
v HTML5.
Vďaka prednastaveným obmedzeniam môžu užívatelia vybrať len z prechodných rokov medzi rokmi 1972 a 2016, ak používajú malú šípku nahor, ktorá prichádza s číslo
typ vstupu. Môžu tiež zadávať hodnotu manuálne do vstupného poľa, ale v prípade, že nespĺňa obmedzenia, prehliadač vráti chybovú správu.
3. maximálna dĺžka
pre overenie dĺžky textu
maximálna dĺžka
atribút umožňuje nastavte maximálnu dĺžku znakov pre textové vstupné polia. Môže byť použitý spolu s text
, Vyhľadávanie
, url
, tel
, e-mail
a heslo
typy vstupov a Značku HTML.
maximálna dĺžka
atribút môže byť vynikajúcim riešením pre polia telefónneho čísla, ktoré nemôžu mať viac ako určitý počet znakov, alebo pre formuláre kontaktov, kde nechceme, aby používatelia písali viac ako určitú dĺžku.
Útržok kódu ukazuje príklad pre druhý, obmedzuje používateľské správy na 500 znakov.
maximálna dĺžka
atribút nevracia chybové hlásenie, ale prehliadač jednoducho neumožňuje používateľom písať viac ako zadané číslo znaku. Preto je veľmi dôležité informovať používateľov o obmedzení, inak nechápu, prečo nemôžu pokračovať v písaní.
4. vzor
pre validáciu regexu
vzor
atribút nám dovolí používať regulárne výrazy v našom procese validácie vstupov. Regulárny výraz je a vopred definovanú sadu znakov ktoré tvoria určitý vzor. Môžeme ho použiť buď na vyhľadávanie reťazcov, ktoré sa riadia vzorom, alebo na presadzovanie určitého formátu definovaného vzorom.
S vzor
atribút, ktorý môžeme urobiť v druhom - obmedziť používateľov, aby predložili svoje vstupy vo formáte, ktorý zodpovedá danému regulárnemu výrazu.
vzor
atribút má veľa prípadov použitia, ale môže byť obzvlášť užitočný, keď chceme potvrďte pole pre heslo.
Nižšie uvedený príklad vyžaduje, aby používatelia zadali heslo, ktoré má minimálne 8 znakov a obsahuje aspoň jedno písmeno a jedno číslo (zdroj regexu, ktorý som použil).
Niekoľko vecí
V tomto článku sme sa pozreli na to, ako využiť overovanie formulára poskytnutého prehliadačom poskytnuté algoritmom validácie natívneho obmedzenia HTML5. Pri vytváraní vlastných skriptov na overenie je potrebné použiť rozhranie API na overenie pravdepodobnosti, ktoré môže byť ďalším krokom v zdokonaľovaní zručností overovania formulárov.
Formuláre HTML5 sú prístupné pomocou asistenčných technológií, takže nemusíme nevyhnutne používať aria-požadované
Atribút ARIA označuje požadované vstupné polia pre čítačky obrazovky. Je však stále užitočné pridať podporu pre staršie prehliadače. Je tiež možné zrušiť overenie obmedzenia pridaním novalidate
booleovský atribút element.