Intro Into do HTML5 ověření vazby
Interaktivní webové stránky a aplikace nelze představit bez formulářů, které nám umožňují spojení s našimi uživateli, a získat data potřebujeme, abychom s nimi zajistili hladké transakce. Potřebujeme platný vstup uživatele, musíme ji však získat tak, aby to bylo možné není frustrující našich uživatelů.
I když můžeme vylepšit použitelnost našich formulářů s inteligentně vybranými vzory návrhu UX, HTML5 má také nativní mechanismus pro validaci omezení, který nám umožňuje zachytit vstupní chyby přímo na front-end.
V tomto příspěvku se zaměříme na ověření prohlížečem, a podívejte se, jak mohou vývojáři frontendu zabezpečit platný vstup uživatele pomocí HTML5.
Proč potřebujeme ověření front-end vstupů
Ověřování vstupu má dva hlavní cíle. Potřebný obsah musí být:
1. Užitečné
Potřebujeme použitelných dat, se kterými můžeme pracovat. Musíme lidi vstoupit realistická data ve správném formátu. Například nikdo, kdo je dnes naživu, se narodil před 200 lety. Získání dat, jako je tento, se může na první pohled zdát vtipné, ale z dlouhodobého hlediska je to nepříjemné a zaplňuje naši databázi zbytečnými daty.
2. Zabezpečení
Když se odvoláváme na bezpečnost, znamená to, že musíme zabránit vniknutí škodlivého obsahu - úmyslné nebo nehody.
Lze dosáhnout užitečnosti (získání přiměřených dat) pouze na straně klienta, backend tým s tím moc nepomůže. Dosáhnout bezpečnostní, přední a zadní vývojáři potřebují spolupracovat.
Pokud vývojáři frontendu správně ověřují vstup na straně klienta, backend tým se bude muset vypořádat s mnohem menší zranitelností. Hacking (místo) často znamená odeslání dodatečných údajů, nebo data ve špatném formátu. Vývojáři mohou bojovat s bezpečnostními dírami, jako jsou tyto, úspěšně bojovat z front-endu.
Tento průvodce zabezpečení PHP například doporučuje zkontrolovat vše, co můžeme na straně klienta. Zdůrazňují důležitost validace vstupu frontendem tím, že poskytují mnoho příkladů, jako jsou:
"Ověřování vstupu funguje nejlépe s extrémně omezenými hodnotami, např. Když něco musí být celé číslo nebo alfanumerický řetězec nebo adresa URL HTTP."
Při ověřování vstupu na frontend je naší úlohou přiměřená omezení na vstupu uživatele. Funkce ověřování omezení HTML5 nám poskytuje prostředky k tomu.
Validace omezení HTML5
Před HTML5 byli vývojáři frontendu omezeni na ověření vstupu uživatele pomocí JavaScriptu, který byl zdlouhavý a náchylný k chybám. Pro zlepšení ověření formuláře na straně klienta zavedla HTML5 a validace omezení algoritmus, který běží v moderních prohlížečích, a kontroluje platnost zadaného vstupu.
K provedení vyhodnocení algoritmus používá atributy související s validací vstupních prvků, jako ,
, a
. Pokud se chcete dozvědět, jak se v prohlížeči provádí ověření platnosti, krok za krokem se podívejte na tento dokument WhatWG doc.
Díky funkci ověřování omezení HTML5 můžeme provést všechny standardní úlohy validace vstupů na straně klienta bez JavaScriptu, pouze s HTML5.
Pro provádění složitějších úkolů souvisejících s validací nám HTML5 poskytuje a API API pro ověření omezení můžeme použít k nastavení vlastních ověřovacích skriptů.
Ověřte pomocí sémantických vstupních typů
Zavedeno HTML5 typy sémantických vstupů krom toho, že - kromě označení prvku pro uživatele agentů - lze také použít ověření vstupu uživatele omezením uživatelů na určitý vstupní formát.
Kromě typů vstupů, které již existovaly před HTML5 (text
, Heslo
, Předložit
, resetovat
, rádio
, zaškrtávací políčko
, tlačítko
, skrytý
), můžeme použít i následující sémantické typy vstupů HTML5: e-mailem
,tel
,url
,číslo
,čas
,datum
,čas schůzky
,datetime-local
, Měsíc
,týden
, rozsah
, Vyhledávání
,barva
.
Můžeme bezpečně používat vstupní typy HTML5 se staršími prohlížeči, protože se budou chovat jako v prohlížečích, které je nepodporují.
Uvidíme, co se stane, když uživatel zadá nesprávný typ vstupu. Řekněme, že jsme vytvořili vstupní pole e-mailu s následujícím kódem:
Když uživatel zadá řetězec, který nepoužívá formát e-mailu, algoritmus ověření platnosti omezení formulář neodesílá, a vrátí chybovou zprávu:
Stejné pravidlo platí i pro jiné typy vstupů, například pro type = "url"
uživatelé mohou odesílat pouze vstup, který následuje ve formátu URL (začíná protokolem, například http: //
nebo ftp: //
).
Některé typy vstupů používají design neumožňuje uživatelům zadávat nesprávný vstupní formát, například barva
a rozsah
.
Pokud použijeme barva
typ vstupu je uživatel omezen buď na výběr barvy z výběru barvy, nebo na výchozí barvu. Vstupní pole je omezena designem, proto nezanechává velkou šanci na chybu uživatele.
Když je to vhodné, stojí za zvážení použití HTML tag, který funguje podobně jako tyto typy vstupů s omezeným designem; umožňuje uživatelům vybírat z rozevíracího seznamu.
Použít atributy ověření HTML5
Použití sémantických vstupních typů nastavuje určitá omezení na to, co mohou uživatelé odesílat, ale v mnoha případech chceme jít o něco dále. To je, když atributy související s validací z tag nám může pomoci ven.
Atributy související s ověřováním patří určitým typům vstupů (nelze na ně použít Všechno typy), na které ukládají další omezení.
1. Povinný
pro získání platného vstupu všemi prostředky
Povinný
atribut je nejznámější atribut validace HTML. To je atribut boolean to znamená nemá žádnou hodnotu, prostě to musíme umístit dovnitř pokud ho chceme použít:
Pokud uživatel zapomene zadat hodnotu do požadovaného vstupního pole, prohlížeč vrátí chybovou zprávu který je varuje, aby vyplnili pole, a oni formulář nelze odeslat dokud neposkytnou platný vstup. Proto je důležité vždy vizuálně uživatelům.
Povinný
atribut může být spolu s následujícími typy vstupů: text
, Vyhledávání
, url
, tel
, e-mailem
, Heslo
, datum
, čas schůzky
, datetime-local
, Měsíc
, týden
,čas
, číslo
, zaškrtávací políčko
, rádio
, soubor
, plus s a
Značky HTML.
2. min
, max
a krok
pro validaci čísla
min
, max
a krok
atributy nám umožňují dát omezení na vstupní pole čísel. Mohou být použity společně s rozsah
, číslo
, datum
, Měsíc
, týden
, čas schůzky
, datetime-local
, a čas
vstupních typů.
min
a max
Atributy poskytují skvělý způsob, jak snadno vyloučit nepřiměřené údaje. Příklad níže nutí uživatele, aby odeslali věk mezi 18 a 120 lety.
Když algoritmus validace vazby narazí do uživatelského vstupu menšího než min
, nebo větší než max
brání dosažení backendu a vrátí chybovou zprávu.
krok
atribut určuje číselný interval mezi právními hodnotami numerického vstupního pole. Pokud například chceme, aby si uživatelé vybrali pouze z přestupných let, můžeme přidat step = "4"
atributu pole. V příkladu níže jsem použil číslo
typ vstupu, protože není type = "year"
v HTML5.
S přednastavenými omezeními si uživatelé mohou vybrat pouze z přestupných let mezi lety 1972 a 2016, pokud používají malou šipku nahoru, která je součástí dodávky. číslo
Typ vstupu. Také mohou ručně zadat hodnotu do vstupního pole, ale v případě, že nesplňuje omezení, prohlížeč vrátí chybovou zprávu.
3. maximální délka
pro validaci délky textu
maximální délka
tento atribut umožňuje nastavte maximální délku znaků pro textová vstupní pole. Lze jej použít společně s text
, Vyhledávání
, url
, tel
, e-mailem
a Heslo
vstupních typů a pomocí HTML tag.
maximální délka
atribut může být vynikajícím řešením pro pole telefonních čísel, která nemohou mít více než určitý počet znaků, nebo pro kontaktní formuláře, kde nechceme, aby uživatelé psali více než určitou délku.
Níže uvedený úryvek kódu ukazuje příklad pro druhý, omezuje zprávy uživatele na 500 znaků.
maximální délka
atribut nevrátí chybovou zprávu, ale prohlížeč jednoduše nedovolí uživatelům zadat více než zadané číslo znaku. Proto je zásadní informovat uživatele o omezení, jinak nechápou, proč nemohou pokračovat s psaním.
4. vzor
pro validaci Regexu
vzor
nám dovolují používat regulární výrazy procesu ověřování vstupu. Regulární výraz je a předdefinovaný soubor znaků které tvoří určitý vzor. Můžeme jej použít buď pro vyhledávání řetězců, které následují vzor, nebo pro vynucení určitého formátu definovaného vzorem.
S vzor
atributu můžeme udělat druhé - omezit uživatele, aby předložili svůj vstup ve formátu, který odpovídá danému regulárnímu výrazu.
vzor
atribut má mnoho případů použití, ale může být zvláště užitečné, když chceme ověřte pole hesla.
Níže uvedený příklad vyžaduje, aby uživatelé zadali heslo, které je nejméně 8 znaků dlouhé, a obsahuje alespoň jedno písmeno a jedno číslo (zdroj použité metody regex I).
Ještě pár věcí
V tomto článku jsme se podívali na to, jak využít ověření pomocí prohlížeče poskytován HTML5 přirozeným ověřovacím algoritmem. Pro tvorbu vlastních ověřovacích skriptů musíme použít API pro ověřování omezení, které může být dalším krokem při zdokonalování dovedností ověřování formulářů.
Formuláře HTML5 jsou přístupné pomocí asistenčních technologií, takže nemusíme nutně používat požadovaná árie
Atribut ARIA k označení požadovaných vstupních polí pro čtečky obrazovky. Stále však může být užitečné přidat podporu usnadnění přístupu pro starší prohlížeče. Je také možné zrušit validaci omezení přidáním novalidát
atribut boolean živel.