Ch 6 je vyžadováno přihlášení pomocí jména. Zabezpečení uživatelských dat. Řešení problému „Jejda, došlo k chybě“ na Instagramu

Publikováno 23. října v 23:15.

Použití ověření uživatelského jména ke zvýšení bezpečnosti účet

Jako další bezpečnostní opatření vám poskytujeme systém ověřování uživatelského jména pro zvýšení zabezpečení účtu na určitých stránkách EA, včetně stránky vašeho účtu EA.

  • Pozor hráči FIFA: tuto funkci nutné pro přístup k serverům FIFA Ultimate Team a partnerským aplikacím.

Toto bezpečnostní opatření má zabránit lidem v přihlášení k vašemu účtu EA z neznámých zařízení bez hesla a ověření vašeho uživatelského jména. Oznámení budou zasílána na váš mobilní telefon nebo e-mail dle vašeho výběru. Během procesu ověřování uživatelského jména dočasné digitální kódy přístup pro každého konkrétního uživatele nutný k přihlášení k účtu z neznámého zařízení.


Povolit ověření uživatelského jména

1. Přejděte na ea.com a přihlaste se.

2. Klikněte na své uživatelské jméno a poté vyberte „Můj účet“.

3. Vyberte kartu Zabezpečení, kde naleznete část Ověření uživatelského jména.

4. Kliknutím na Povolit povolte ověření uživatelského jména, zadejte svou bezpečnostní otázku a vyberte jednu z možností: e-mail, aplikace identity nebo SMS pro obdržení ověřovacího kódu.

  • Pokud vyberete možnost " E-mailem“ namísto SMS se prosím ujistěte, že e-mailová adresa uvedená pro váš účet je platná a funkční adresa, kterou pravidelně kontrolujete, zda nemáte nové zprávy.
  • Identifikační aplikace pro tablety a mobilní telefony vám umožňuje na těchto zařízeních vygenerovat ověřovací kódy pro přihlášení k vašemu účtu.
  • Z rozevíracího seznamu vyberte typ zařízení a stáhněte si Google Authenticator pro zařízení Apple a Android nebo Authenticator pro zařízení používající operační systém Okna.
  • Hráči hry FIFA 15 na PlayStation 3 a Xbox 360 nebudou muset při ověřování svého uživatelského jména pomocí ověřovací aplikace přijímat další bezpečnostní opatření.

5. Při pokusu o přihlášení z neznámého zařízení nyní obdržíte ověřovací kód. Každých 90 dní obdržíte ověřovací kód, když se přihlásíte ke svému účtu z důvěryhodných zařízení. Tímto způsobem budete mít přístup ke svému účtu EA pouze vy pomocí jedinečného kódu.


V případě potřeby můžete deaktivovat ověřování uživatelského jména tak, že se vrátíte na stránku správy účtu a vyberete možnost Zakázat.*

Poznámka

  • *Nezakazujte ověřování uživatelského jména, pokud hrajete FIFA Ultimate Team, jinak vám bude odepřen přístup.
  • Nezapomeňte také vytvořit a potvrdit bezpečnostní otázku a odpověď pro FIFA Ultimate Team.

Nastavte si identifikační aplikaci

Aplikace pro identifikaci je nejvíce rychlý způsob bezpečně ověřit svou identitu. Nastavte si na svém zařízení identifikační aplikaci mobilní zařízení k přihlášení pomocí kódu, který vygeneruje pro dvoukrokovou identifikaci.

1. Otevřete kartu Zabezpečení na stránce Můj účet a vyhledejte část Ověření uživatelského jména.

2. Klepnutím na Povolit povolte ověřování uživatelského jména, odpovězte na bezpečnostní otázku, vyberte Aplikace identity a klikněte na Pokračovat.

3. Z rozevíracího seznamu vyberte požadovaný operační systém telefonu a naskenujte QR kód pomocí aplikace pro čtení čárových kódů nebo vyhledejte v obchodě s aplikacemi pro svůj telefon autentizátor pro příslušnou aplikaci: Google Authenticator pro Android a iOS nebo Authenticator pro Windows Telefon.

4. Otevřete aplikaci identifikace a vyberte možnost ručního přidání účtu.

5. Naskenujte QR kód nebo zadejte tajný kód k propojení aplikace identity s vaším účtem EA.

6. Dokončete nastavení identifikační aplikace zadáním kódu, který vygenerovala pro váš účet Electronic Arts, a kliknutím na „Povolit ověření uživatelského jména“.

Když budete v budoucnu potřebovat ověřit své uživatelské jméno:

1. Otevřete aplikaci identifikace.

2. Zadejte šestimístný kód svého účtu Electronic Arts.

Vygenerovaný kód je platný po omezenou dobu. Pokud platnost vašeho aktuálního kódu již brzy vyprší, počkejte, až aplikace vygeneruje nový kód, abyste měli dostatek času na jeho zadání.

Co mám dělat, když to nemohu použít? mobilní telefon nebo e-mail, když potřebuji kód? Je možné vygenerovat pomocné kódy?

Pokud váš telefon, ID popř e-mailem nejsou vám k dispozici, jediná možnost Přihlášení k účtu EA z neznámého počítače - použití asistenčních kódů. Uložte je na bezpečném a pro vás přístupném místě. Tyto kódy můžete zobrazit a aktualizovat ve svém účtu EA v části Nastavení soukromí v klientovi Origin nebo online.

  • Klikněte na „Zabezpečení“, poté na „Zobrazit“ a „Kódy nápovědy“.*
  • Můžete také použít funkci „Vyžádat nový kód po přihlášení do FIFA Ultimate Team“.

*Pokud vám dojdou kódy podpory, můžete si na stránce Správa účtu vygenerovat nové.

Potvrdit kontaktní informace abyste se ujistili, že kód je správný.

Pokud máte potíže s ověřovacím kódem svého uživatelského jména, ujistěte se, že jste správně zadali svou e-mailovou adresu nebo telefonní číslo. Při použití identifikátoru se ujistěte, že je program správně nainstalován.

  • Pokud jste se rozhodli poslat kód na svůj e-mail při aktivaci ověření uživatelského jména, můžete zkontrolovat a aktualizovat svou e-mailovou adresu v části O mně na stránce Správa účtu nebo prostřednictvím klienta Origin.
  • Pokud vyberete aplikaci Identity App, můžete pomocí čárového kódu nebo QR kódu naskenovat a vyhledat kód mezi ?secret= a &.
  • Pokud jste při aktivaci ověření uživatelského jména zvolili možnost zaslání kódu prostřednictvím SMS, můžete své telefonní číslo zkontrolovat a aktualizovat v sekci Zabezpečení na stránce správy účtu nebo prostřednictvím klienta Origin.
  • Vytvořte nebo potvrďte bezpečnostní otázku a odpověď.

Jakmile potvrdíte své kontaktní údaje, budete mít možnost povolit ověření uživatelského jména pro příjem nového kódu.

Proč jsem dostal tento formulář?

Na vašem webu aktuálně probíhá útok hrubou silou. Útok hrubou silou je útok na hádání hesla. V tomto případě je vybráno heslo pro administrativní panel vašeho webu.

Abychom zabránili hacknutí vašeho webu a zvýšili jeho bezpečnost, nainstalovali jsme další ochranu.

Jak se nyní dostanu k panelu správce webu?

Nyní, když vstoupíte do administrativního panelu vašeho webu (na Joomla nebo WordPress), objeví se další okno pro zadání vašeho přihlašovacího jména a hesla s nápisem „použijte prosím heslo ovládacího panelu“. Jako přihlašovací jméno musíte zadat přihlašovací jméno vaší hostingové služby, vypadá to "u1234567". Heslo je aktuální heslo pro vaši hostingovou službu.

Po absolvování základní autentizace HTTP se na panelu administrátora vašeho webu zobrazí standardní přihlašovací pole. Nyní budete muset zadat přihlašovací jméno a heslo správce webu.

Jak funguje základní ověřování HTTP

Při zadávání přihlašovacího hesla v okně základní autentizace se hodnota přihlášení a hash hesla budou porovnány s hodnotami ve speciálním souboru ~/etc/users, k dispozici v ovládacím panelu vašeho hostingu. Obsah souboru vypadá asi takto: "u1234567:dm48bspxIO3rg". Kde „u1234567“ je přihlašovací jméno a „dm48bspxIO3rg“ je hash hesla(poznámka: pouze hash, nikoli samotné heslo!). Hash hesla je výsledkem převodu hesla pomocí specifického algoritmu.

Když tedy zadáte své přihlašovací jméno a heslo do okna základní autentizace, zadané heslo se převezme hash a porovná se s hodnotou hash v souboru ~/etc/users. Pokud se hodnoty shodují, jste ověřeni.

Nemohu projít základní autentizací

Pravděpodobně zadáváte špatné heslo. Nastavte nové heslo pro základní ověření:

Pokud jste prošli základní autentizací, ale nemůžete se přihlásit přímo do administračního panelu vašeho webu Joomla nebo WordPress, použijte nápovědu:

Jak zvýšit ochranu vašeho webu před útoky Brute-force?

Chcete-li zvýšit zabezpečení webu:

  • změnit přihlášení superuživatele na unikátnější. Nepoužívejte krátká jména, je lepší používat křestní jméno spolu s příjmením. Na internetu je mnoho zdrojů, kde se shromažďují nejoblíbenější přihlašovací údaje. Seznamte se s nimi a nikdy je nepoužívejte;
  • Nastavte složité heslo správce webu. Složité heslo musí obsahovat velká a malá písmena, číslice a další symboly jako "* - _ #:" atd. Délka hesla není kratší než 6 znaků. Nejlépe 10 a více.

Jak odebrat formulář základního ověřování HTTP?

Odebrání formuláře základního ověřování HTTP:

AuthType Basic AuthName "použijte prosím heslo ovládacího panelu" AuthUserFile .../users Vyžadovat platného uživatele

Chcete-li okomentovat řádek, vložte na začátek řádku symbol hash („#“), jako je tento.

Budeme potřebovat následující stránky:

  • Registrační stránka s registračním formulářem
  • Stránka aktivace účtu
  • Stránka pro obnovení hesla
  • Stránka pro resetování hesla

Přihlašovací formulář bude umístěn na všech stránkách webu (například v záhlaví).

Toto je registrační stránka, kterou chceme získat:

Zde typ účtu určí, do které skupiny uživatele zaregistrujeme. Také identifikační pole (uživatelské jméno) bude e-mail.

Přidejte na stránku volání úryvku Registrovat:

[[!Registrovat? &submitVar=`register-btn` &activationResourceId=`27` &activationEmailTpl=`Email.Activation` &activationEmailSubject=`Jste zaregistrováni na example.com` &placeholderPrefix=`reg.` &successMsg=`

Děkujeme vám za registraci. Na váš email [[!+reg.email]] Byl odeslán e-mail s odkazem na aktivaci vašeho účtu. Registraci dokončíte kliknutím na tento odkaz.
` &usernameField=`email` &usergroupsField=`reg_type` &customValidators=`valueIn` &validate=`username:blank, reg_type:valueIn=^Čtenáři;Spisovatelé;Idlers ^, celé jméno:požadováno:minLength=^6^, heslo:vyžadováno =^6^, password_confirm:password_confirm=^password^, email:required:email` ]] [[!+error.message:default=`[[!$Register.Form]]`]]

Upozorňujeme, že všechny značky související s registrací jsou povinné Nezbytně hovor bez mezipaměti. Stejná pravidla platí při zpracování formulářů s fragmentem FormIt.

Podívejme se na parametry volání:

&submitVar=`registrovat-btn`- určuje atribut name tagu vstup. To znamená, že fragment bude fungovat pouze v případě, že je formulář odeslán s tlačítkem s konkrétním názvem.

&activationResourceId=`42`- při pohledu dopředu je 42 identifikátor stránky, na které budeme uživatele aktivovat.

&activationEmailTpl=`E-mail.Aktivace`- kus s aktivačním dopisem, o tom později.

&placeholderPrefix=`reg.`- označuje, že všechny zástupné symboly, se vzácnými výjimkami (více o tom později), které jsou vytvořeny v tomto úryvku, musí začínat „reg.“

&úspěchZpráva– zpráva, která se zobrazí po úspěšném odeslání formuláře. Všimněte si, že může obsahovat hodnoty z formuláře a jakékoli další značky. Tato zpráva zaregistrujte se pro zástupný symbol [[!+error.message]]. Docela zvláštní název a v dokumentaci pro tento moment chyba. Je to tam napsáno [[!+reg.error.message]], ale z kódu součástky vyplývá, že tomu tak není.

&usernameField=`e-mail`- určuje, že pole e-mailu bude použito jako uživatelské jméno.

&usergroupsField=`reg_type`- definuje pole, které určuje skupinu, do které bude nový uživatel přidán.

&customValidators=`valueIn`- určuje další validátory, které je třeba vytvořit ručně.

&ověřit– validátory jsou uvedeny oddělené čárkami pro každé pole, a pokud je pro jedno pole vyžadováno několik validátorů, jsou také odděleny dvojtečkou. Podívejme se na ně samostatně:

uživatelské jméno: prázdné– jednoduchá past na spam, to znamená, že pole uživatelského jména by mělo zůstat prázdné.

reg_type:valueIn=^Čtenáři;Spisovatelé;Povaleči^- omezujeme možné skupiny na tři uvedené. V prvotní distribuci nic takového není a zlí hackeři se mohou registrovat například pod skupinou Administrator (pokud jste ji nepřejmenovali).

celé jméno:vyžadováno:minLength=^6^- pole pro celé jméno nesmí být prázdné a obsahovat alespoň 6 znaků.

heslo:vyžadováno:minLength=^6^- podobné pro heslo.

password_confirm:password_confirm=^heslo^- heslo se musí shodovat.

email:vyžadováno:e-mail– e-mail nesmí být prázdný a musí jít o skutečný e-mail.

Design [[!+error.message:default=`[[!$Register.Form]]`]] zobrazí zprávu o úspěšném odeslání formuláře nebo části formuláře, pokud jste stránku právě navštívili nebo ji špatně vyplnili.

Vytvořme výše uvedený validátor valueIn. Chcete-li to provést, vytvořte úryvek s názvem valueIn a následující kód:

$valueIn = explode(";", $param); return in_array($value, $valueIn);

Nyní musíte vytvořit blok Registrovat.Formulář . V tomto případě to bude následující (používá se Bootstrap 3):

[[!+reg.error.fullname:notempty=`
[[!+reg.error.fullname]]
`]]
[[!+reg.error.email:notempty=`
[[!+reg.error.email]]
`]]
[[!+reg.error.password:notempty=`
[[!+reg.error.password]]
`]]
[[!+reg.error.password_confirm:notempty=`
[[!+reg.error.password_confirm]]
`]]

Všechna pole jsou povinná

V tomto formuláři uvedu několik věcí týkajících se MODX:


– formulář je zpracován na stejné stránce, na které je zobrazen.

Nastavení hodnoty z těch přijatých z formuláře tak, aby v případě neúspěchu uživatel nemusel vše zadávat znovu.

[[!+reg.error.email:notempty=`[[!+reg.error.email]]`]]– opět v případě poruchy se pod polem zobrazí chybové hlášení.

– nezapomeňte uvést název tlačítka, pokud jste vlastnost nastavili dříve &submitVar.


Teď už zbývá jen vytvořit kus Email.Aktivace s dopisem, který stránka odešle uživateli:

Děkujeme vám za registraci! Chcete-li aktivovat svůj účet, navštivte prosím následující odkaz:

Aktivujte si svůj účet na example.com

Po aktivaci se budete moci přihlásit pomocí svého e-mailu a hesla:

Přihlásit se:[[+e-mail]]

Heslo:[[+heslo]]


Zde můžete použít zástupné symboly s názvy polí formuláře. Vezměte prosím na vědomí, že jsou psány bez "reg." Je také přidán zástupný symbol [[+confirmUrl]], ve kterém již byl vygenerován aktivační odkaz, nemusíte ani nic dělat.


Dokončení umění registrace nového účtu pomocí komponenty Přihlásit se bude vytvořena aktivační stránka. Pro tuto stránku používáme prázdnou šablonu a v obsahu stránky stačí zadat volání značky:

[[!ConfirmRegister? &redirectTo=`1`]]

kde 1 je identifikátor stránky, na kterou bude uživatel přesměrován v případě úspěšné aktivace. V tomto případě již bude přihlášen.


Začněme s nastavením přihlášení do uživatelského profilu. Autorizační formulář bude jednoduchý:

Pojďme to přidat tak, že to zavoláme na správném místě:

[[!Přihlásit se? &loginTpl=`Auth.Login` &logoutTpl=`Auth.Logout` &errTpl=`Auth.Login.Error` &actionKey=`action` &loginKey=`login` &redirectToPrior=`1` &logoutResourceId=`1`]]

Zde specifikujeme kus s přihlašovacím formulářem nakresleným výše ( &loginTpl=`Auth.Login`), kus s kódem zobrazeným oprávněným uživatelům ( &logoutTpl=`Auth.Logout`), malý kousek s výstupem chyby přihlášení ( &errTpl=`Auth.Login.Error`). Jsou to následující parametry:

&actionKey=`akce` A &loginKey=`přihlášení`- hlavní identifikátory pro zpracování požadavku. První znamená název parametru v požadavku POST a druhý znamená jeho hodnotu. To znamená, že formulář musí předat hodnotu $_POST["action"]="login", aby fragment Přihlásit se zpracoval to.

&redirectToPrior=`1`- znamená, že po přihlášení budeme přesunutí na stejnou stránku, ze které jsme vstoupili.

&logoutResourceId=`1`- při opuštění profilu přejdeme na stránku s ID 1.


Chunk Auth.Login :

[[!+chyby]]

Formulář se zpracovává na stejné stránce. Pokud dojde k chybě, zobrazí se pod formulářem v zástupném symbolu [[!+chyby]]. Musíte si také zapamatovat odkazy na zdroje s registrací a obnovením hesla. Upozorňujeme, že v poli e-mailu name = „username“ – právě v tomto poli fragment duplikoval e-mail Registrovat a je jedinečný pro uživatele.


Chunk Auth.Logout:

[]` &tpl=`User.HeaderBadge` &innerJoin=`("modUserGroupMember":("alias":"modUserGroupMember","on":"modUser.id = modUserGroupMember.member"), "modUserGroup":("alias" :"modUserGroup", "on":"modUserGroupMember.user_group = modUserGroup.id"))` &select=`("modUserGroup":("group_name": "modUserGroup.name"))` ]]

Opustit profil

Tato část není nutná, pokud jsou všichni uživatelé ve stejné skupině. K zobrazení skupiny uživatelů však standardní úryvky zahrnuté v komponentě Login nestačí. Můžete napsat jednoduchý úryvek, abyste získali název skupiny xPDO, nebo můžete použít hotový úryvek pdoUsers součástí balení pdoTools. Parametry uvedené v tomto úryvku:

&users=`[[+modx.user.id]]`- vyberte pouze aktuálního oprávněného uživatele.

&tpl=`User.HeaderBadge`- kus, ve kterém zobrazíme stručné informace o uživateli.

&vnitřní spojení– JSON se spojeními tabulek uživatelských skupin, popis je nad rámec článku. Hlavní je, že to funguje J.

&vybrat– JSON, který do výběru přidá pole modUserGroup.name s aliasem název_skupiny.


Kus s uživatelským odznakem User.HeaderBadge :

Jste přihlášen jako [[+group_name]][[+fullname]] Osobní účet

Pokud bychom nepotřebovali uživatelskou skupinu, obsah tohoto chunku by mohl být vložen přímo do chunku Auth.Logout . Zde můžete zobrazit zástupné symboly s libovolnými poli modUser a modUserProfile plus pomocí pdoUsers pole přidáno skupinové jméno.


V kuse Auth.Login.Error jednoduchý chybový výstup:

[[+zpráva]]

S přihlášením jsme hotovi. V tomto okamžiku se uživatel může zaregistrovat a úspěšně se přihlásit. Ale co když zapomněl heslo? V tomto případě klikne na odkaz „Zapomněli jste heslo? a přejde na stránku pro obnovení hesla, kterou nejprve vytvoříme a zavoláme tam:

[[!Zapomenuté heslo? &tpl=`Auth.ForgotPass.Form` &submitVar=`forgotpass` &errTpl=`Auth.Login.Error` &sentTpl=`Auth.ForgotPass.Sent` &emailTpl=`Email.ForgotPass` &emailSubject=`Obnovení přístupu k vašemu účtu webové stránky. Com` &resetResourceId=`29`]]

Podívejme se na parametry tohoto volání:

&tpl=`Auth.ForgotPass.Form`- část formuláře, do kterého uživatel zadá svůj e-mail.

&submitVar=`zapomněl jsem heslo`- v případě snippetu ForgotPassword stačí, aby byl serveru předán parametr se stejným názvem a bez ohledu na to, s jakou neprázdnou hodnotou.

&errTpl=`Auth.Login.Chyba` - chybový výstup podobný fragmentu přihlášení

&sentTpl=`Auth.ForgotPass.Sent`- tento blok obsahuje obsah, který se zobrazí v případě úspěšného odeslání e-mailu pro změnu hesla.

&emailTpl=`E-mail.Zapomenuté heslo`- samotný dopis je obsažen zde.

&předmět emailu=`Obnovení přístupu k vašemu účtu na webu Example.Com` – název dopisu.

&resetResourceId=`29`- identifikátor zdroje, u kterého bude heslo resetováno na nové.


Kus Auth.ForgotPass.Form:

[[+loginfp.errors]]

Jedinou novinkou je zde jiný způsob zobrazení chyb v zástupném symbolu [[+loginfp.errors]] a předáním parametru, že tento konkrétní formulář resetuje heslo: .

Auth.ForgotPass.Sent:

Informace o obnovení účtu byly odeslány na zadaný e-mail: [[+e-mail]].

Zde můžete použít údaje z výše uvedeného formuláře.


Email.ForgotPass:

[[+celé jméno]],

Chcete-li aktivovat své nové heslo, navštivte prosím následující odkaz:

Chci nové heslo

Pokud vše proběhlo v pořádku, budete se moci přihlásit do svého profilu pomocí následujících údajů:

Přihlásit se:[[+uživatelské jméno]]

Heslo:[[+heslo]]

Děkuji,
Správa webu Example.Com

Vše je velmi podobné bloku aktivačního dopisu, pouze heslo je zde vygenerováno ve fragmentu.


Posledním krokem je vytvoření zdroje, na který uživatel přejde z e-mailu, aby aktualizoval heslo. V tomto zdroji potřebujeme volání:

[[!ResetPassword:empty=`

Neobjednali jste si reset hesla. Možná máte špatnou adresu. Můžete přejít na hlavní stránku webu nebo použít nabídku výše.

'? &tpl=`Auth.ForgotPass.Reset`]]

Tento kód zobrazí zprávu, pokud někdo náhle znovu navštíví tuto stránku nebo jen náhodou. A pokud je heslo úspěšně resetováno, zobrazí se zpráva z bloku Auth.ForgotPass.Reset:

Vaše heslo bylo úspěšně resetováno na heslo uvedené v e-mailu. Nyní se můžete přihlásit pomocí tohoto hesla. Nezapomeňte si to změnit ve svém profilu.

Nyní máme plně funkční systém autorizace a registrace uživatelů. Změna profilu oprávněných uživatelů bude ponechána mimo rozsah tohoto článku.


1. Vytvořte registrační stránku a přidejte na ni volání úryvku Registrovat.

2. Vytvořte bloky pomocí registračního formuláře Registrovat.Formulář a aktivační dopis Email.Aktivace.

3. Vytvořte stránku s potvrzením registrace a umístěte na ni volání úryvku Potvrďte Registraci.

4. Přidejte volání úryvku Přihlásit se kam chceme umístit přihlašovací formulář a odznak oprávněného uživatele.

5. Vytvořte blok pomocí přihlašovacího formuláře Auth.Login , blok s informacemi o oprávněném uživateli Auth.Logout , blok s chybovou zprávou Auth.Login.Error .

6. Vytvořte stránku pro obnovení hesla a zavolejte na ni Zapomenuté heslo.

7. Vytvořte blok Auth.ForgotPass.Form s formulářem pro obnovení hesla, chunk Auth.ForgotPass.Sent se zprávou o úspěšném odeslání dopisu, kus Email.ForgotPass s e-mailem pro obnovení hesla.

8. Vytvořte zdroj s konečným resetováním hesla a umístěte do něj volání úryvku Obnovit heslo.

9. Vytvořte blok Auth.ForgotPass.Reset se zprávou, že heslo bylo úspěšně resetováno.

To je vše. Budu rád za jakékoli doplnění a komentáře.

Při vytváření webových aplikací je důležité brát bezpečnost vážně, zvláště když se musíte potýkat se získáváním dat od uživatelů.

Obecným bezpečnostním pravidlem je nedůvěřovat nikomu, takže se nemůžete spoléhat na to, že uživatelé budou do formulářů vždy zadávat správné hodnoty. Například místo správné e-mailové adresy do pole může uživatel zadat nesprávnou adresu nebo dokonce nějaká škodlivá data.

Pokud jde o ověřování uživatelských dat, lze to provést buď na straně klienta (ve webovém prohlížeči) nebo na straně serveru.

Dříve bylo možné ověření na straně klienta provádět pouze pomocí JavaScriptu. Vše se ale změnilo (nebo téměř změnilo), protože pomocí HTML5 lze validaci provádět v prohlížeči, aniž by bylo nutné psát složité ověřovací skripty v JavaScriptu.

Ověření formuláře pomocí HTML5

HTML5 poskytuje poměrně robustní mechanismus založený na následujících atributech značek : typ , vzor a požadavek . S těmito novými atributy můžete přesunout některé funkce ověřování dat do prohlížeče.

Podívejme se na tyto atributy, abychom pochopili, jak mohou pomoci s ověřováním formuláře.

atribut typu

Tento atribut říká, které vstupní pole se má zobrazit pro zpracování dat, například známé pole

Některá vstupní pole již poskytují standardní metody ověření, aniž by bylo nutné psát další kód. Například, zkontroluje pole, aby se ujistil, že zadaná hodnota odpovídá šabloně platné e-mailové adresy. Pokud je do pole zadán nesprávný znak, nelze formulář odeslat, dokud nebude hodnota opravena.

Zkuste si pohrát s hodnotami pole e-mailu v ukázce níže.

Existují také další standardní typy polí, např , A pro ověřování čísel, adres URL a telefonních čísel.

Poznámka: Formáty telefonních čísel se v jednotlivých zemích liší kvůli rozdílům v počtu číslic v telefonních číslech a rozdílům ve formátech. V důsledku toho specifikace nedefinuje algoritmus pro kontrolu telefonních čísel, takže v době psaní tohoto článku je tato funkce v prohlížečích špatně podporována.

Naštěstí pro nás lze ověření telefonního čísla provést pomocí atributu pattern, který bere regulární výraz jako argument, na který se podíváme dále.

atribut vzoru

Atribut vzor pravděpodobně způsobí, že mnoho vývojářů front-endu poskočí radostí. Tento atribut přijímá regulární výraz (podobný formátu JavaScriptu), který bude použit ke kontrole správnosti údajů zadaných do pole.

Regulární výrazy jsou jazyk používaný k analýze a manipulaci s textem. Často se používají pro složité operace vyhledávání a nahrazování a také pro kontrolu správnosti zadaných údajů.

Dnes jsou regulární výrazy obsaženy ve většině oblíbených programovacích jazyků a také v mnoha skriptovacích jazycích, editorech, aplikacích, databázích a nástrojích příkazového řádku.

Regulární výrazy (RegEX) jsou výkonným, stručným a flexibilním nástrojem pro porovnávání řetězce textu, jako jsou jednotlivé znaky, slova nebo vzory znaků.

Předáním regulárního výrazu jako hodnoty atributu pattern můžete určit, jaké hodnoty jsou přijatelné pro dané vstupní pole, a také informovat uživatele o chybách.

Podívejme se na několik příkladů použití regulárních výrazů k ověření hodnoty vstupních polí.

Telefonní čísla

Jak již bylo zmíněno dříve, typ pole tel není plně podporován prohlížeči z důvodu nekonzistencí ve formátech telefonních čísel v různých zemích.

Například v některých zemích je formát telefonních čísel reprezentován jako xxxx-xxx-xxxx a samotné telefonní číslo bude vypadat takto: 0803-555-8205 .

Regulární výraz, kterému tento vzor odpovídá, je: ^\d(4)-\d(3)-\d(4)$ . V kódu to lze zapsat takto:

Alfanumerické hodnoty

povinný atribut

Toto je booleovský atribut používaný k označení, že hodnota daného pole musí být vyplněna, aby bylo možné formulář odeslat. Když přidáte tento atribut do pole, prohlížeč bude vyžadovat, aby uživatel toto pole před odesláním formuláře vyplnil.

To nám ušetří implementaci ověřování pole pomocí JavaScriptu, což může vývojářům ušetřit čas.

Například: nebo (pro kompatibilitu s XHTML)

Všechny ukázky, které jste viděli výše, používají požadovaný atribut, takže si to můžete vyzkoušet tak, že se pokusíte odeslat formulář bez vyplňování jakýchkoli polí.

Závěr

Podpora prohlížeče pro ověřování formulářů je docela dobrá a pro starší prohlížeče můžete použít polyfilly.

Stojí za zmínku, že spoléhat se pouze na ověření na straně prohlížeče je nebezpečné, protože tyto kontroly mohou útočníci nebo roboti snadno obejít.

Ne všechny prohlížeče podporují HTML5 a ne všechna data odeslaná do vašeho skriptu pocházejí z vašeho formuláře. To znamená, že před konečným přijetím dat od uživatele je nutné zkontrolovat jejich správnost na straně serveru.

„Ochrana bláznů“ je soubor opatření, která mají zabránit zadávání nesprávných informací do formuláře. Pokud například potřebujete do pole zadat kladné číslo od 0 do 10, měli byste zkontrolovat, zda uživatel nezadává text nebo číslo, které neleží v určeném rozsahu, tzn. číslo by nemělo být menší než nula a větší než deset.

Proč jsou zadávány nesprávné informace? Děje se tak především ze tří důvodů.

  1. Uživatel omylem udělal chybu, například si nepozorně přečetl, co měl uvést.
  2. Webová stránka požaduje data nejednoznačným způsobem a nechává uživatele hádat a hádat, co vlastně chce. Názory vývojáře a uživatele se však ne vždy shodují.
  3. Existuje řada lidí, kteří pokyny vnímají jako výzvu a snaží se o opak. Takoví uživatelé uvažují asi takto: „Jo, žádají mě, abych zadal číslo. Co se stane, když označím písmena?" Pak se ptají na zjevně nesprávné informace a uvidí, k čemu to vede.

Je třeba si uvědomit, že přesná a správná formulace, i když snižuje pravděpodobnost chyb, vás před nimi v žádném případě nezachrání. Pouze technické prostředky na straně serveru vám umožní získat požadovaný výsledek a vyhnout se zadávání nesprávných informací. Revize nebo, jak se také nazývá, validace na straně klienta vám však umožňuje rychle zkontrolovat správnost údajů zadaných uživatelem, aniž byste museli formulář odesílat na server. To šetří čas uživatele a snižuje zatížení serveru. Z hlediska použitelnosti jsou to i výhody - uživatel okamžitě obdrží zprávu o tom, jaké informace zadal špatně a může svou chybu opravit.

Povinné pole

Některá pole formuláře musí být před odesláním na server vyplněna. To se týká například registračního formuláře, kde jste povinni zadat přihlašovací jméno a heslo. Chcete-li zadat požadovaná pole, použijte požadovaný atribut, jak je znázorněno v příkladu 1.

Příklad 1. Požadovaný atribut

HTML5 IE 10+ Cr Op Sa Fx

Povinné pole

Přihlásit se:

Heslo:

Povinná pole musí být vyplněna před odesláním formuláře, jinak nebude formulář odeslán na server a prohlížeč na to vydá varování. Typ zprávy závisí na prohlížeči, například Chrome zobrazí nápovědu, jak je znázorněno na Obr. 1.

Rýže. 1. Povinné pole není vyplněno

Správnost údajů

Zpočátku existují dvě pole, ve kterých se vstup uživatele kontroluje automaticky. Toto je webová adresa a e-mailová adresa. Chrome také kontroluje platnost pole kalendáře, ale pouze proto, že nemá rozhraní pro kliknutí na kalendář. Pro tyto prvky platí následující pravidla.

  • Webová adresa ( ) musí obsahovat protokol (http://, https://, ftp://).
  • Emailová adresa ( ) musí obsahovat písmena nebo čísla před znakem @, za ním, poté tečku a doménu první úrovně.

Prohlížeče mají mírně odlišné zásady pro ověřování uživatelských dat. Například Opera před zadaný text automaticky vloží protokol http://, zatímco ostatní prohlížeče na něj od uživatele čekají. Chrome a Opera vyžadují v e-mailové adrese tečku, Firefox ji nevyžaduje.

Příklad 2 ukazuje formulář s povinnými poli, ve kterém jsou dvě pole ověřena prohlížečem.

Příklad 2: Správnost dat

HTML5 IE 10+ Cr Op Sa Fx

Správnost údajů

Vyplňte formulář (všechna pole jsou povinná)

Název:

E-mailem:

Webová stránka:

Opera kontroluje pouze prvek formuláře, pokud má atribut name.

Co se stane v Opeře, když zadáte nesprávná data, ukazuje Obr. 2.

Rýže. 2. Upozornění na nesprávná data

Vstupní šablona

Některá data nelze zařadit do jednoho z typů prvků formuláře, takže pro ně musíte použít textové pole. Přitom se zadávají podle určitého standardu. IP adresa tedy obsahuje čtyři čísla oddělená tečkou (192.168.0.1), poštovní směrovací číslo Ruska je omezeno na šest číslic (124007), telefonní číslo obsahuje směrové číslo oblasti a určitý počet číslic, často oddělených znakem pomlčka (391 555-341-42) atd. Prohlížeč potřebuje zadat vstupní šablonu, aby podle ní kontroloval údaje zadané uživatelem. K tomu se používá atribut pattern a jeho hodnota je regulární výraz. Některé typické hodnoty jsou uvedeny v tabulce. 1.

Příklad 3 vás požádá o zadání hexadecimální hodnoty barvy (#ffcc00), a pokud není v tomto rozsahu, prohlížeč zobrazí chybovou zprávu.

Příklad 3. Šablona zadání

HTML5 IE 10+ Cr Op Sa Fx

Barevné zadání

Zadejte hexadecimální hodnotu barvy (musí začínat #)

Na Obr. Obrázek 3 zobrazuje varování v prohlížeči Chrome.

Rýže. 3. Zadané údaje neodpovídají šabloně

Zrušení platnosti

Validace není vždy vyžadována pro formulář, například vývojář bude chtít použít univerzální řešení JavaScript a již nebude potřebovat kontrolu duplicit ze strany prohlížeče. V takových případech je třeba zakázat vestavěné ověřování. Chcete-li to provést, použijte atribut novalidate značky

. Příklad 4 ukazuje použití tohoto atributu.

Příklad 4: Zrušení platnosti

HTML5 IE 10+ Cr Op Sa Fx

novalidate atribut

K podobnému účelu slouží atribut formnovalidate, který se přidává k tlačítku pro odeslání formuláře, v tomto případě ke značce . V tomto případě bude formulář z příkladu 4 vypadat takto.