Webové stránky a aplikace často vyžadují vstup uživatele, aby splnily svůj plný účel. Pokud web umožňuje uživatelům přihlásit se k odběru, uživatelé musí být schopni poskytnout svou e-mailovou adresu. A online nakupování samozřejmě vyžaduje zadání platebních údajů.
Problém s uživatelským vstupem je však v tom, že také umožňuje hackerovi zadat něco škodlivého ve snaze oklamat web nebo aplikaci, aby se chovala špatně. Aby se tomu zabránilo, každý systém, který nabízí vstup uživatele, musí mít ověření vstupu.
Co je tedy ověřování vstupu a jak funguje?
Co je ověření vstupu?
Validace vstupů je proces analýzy vstupů a nepovolení těch, které jsou považovány za nevhodné. Myšlenka ověřování vstupu spočívá v tom, že povolením pouze vstupů, které splňují určitá kritéria, se útočníkovi stane nemožné vstoupit do vstupu, který má způsobit poškození systému.
Ověření vstupu by se mělo používat na jakékoli webové stránce nebo aplikaci, která umožňuje uživatelské vstupy. I když web nebo aplikace neuchovává žádné důvěrné informace, povolení neplatných vstupů může také způsobit problémy s uživatelským dojmem.
Proč je ověření vstupu důležité?
Ověření vstupu je důležité ze dvou důvodů, a to uživatelské zkušenosti a zabezpečení.
Uživatelská zkušenost
Uživatelé často zadávají neplatné vstupy, ne proto, že by se pokoušeli napadnout web nebo aplikaci, ale protože udělali chybu. Uživatel může napsat slovo špatně nebo poskytnout nesprávné informace, například zadat své uživatelské jméno do nesprávného pole nebo zkusit zadat zastaralé heslo. Když k tomu dojde, lze použít ověření vstupu k informování uživatele o jeho chybě, což mu umožní rychle ji napravit.
Ověření vstupu také zabraňuje scénářům, kdy dojde ke ztrátě registrací a prodeje, protože uživatel není informován, a tak se domnívá, že byl poskytnut správný vstup, i když tomu tak nebylo.
Bezpečnostní
Ověření vstupu zabraňuje široké škále útoků, které lze provést proti webu nebo aplikaci. Tyto kybernetické útoky mohou způsobit krádež osobních údajů, umožnit neoprávněný přístup k dalším komponentám a/nebo zabránit fungování webové stránky/aplikace.
Vynechání ověření vstupu lze také snadno odhalit. Útočníci mohou pomocí automatických programů hromadně zadávat neplatné vstupy na webové stránky a určit, jak webové stránky reagují. Poté mohou spustit ruční útoky na jakékoli webové stránky, které nejsou chráněny.
To znamená, že nedostatek ověření vstupu není jen důležitou zranitelností; je to zranitelnost, která bude často nalezena, a tak může často způsobit hackování.
Co jsou útoky na ověření vstupu?
Útok pro ověření vstupu je jakýkoli útok, který zahrnuje přidání škodlivého vstupu do uživatelského vstupního pole. Existuje mnoho různých typů útoků na ověřování vstupu, které se pokoušejí dělat různé věci.
Přetečení zásobníku
K přetečení vyrovnávací paměti dochází, když je do systému přidáno příliš mnoho informací. Pokud se nepoužije ověřování vstupu, nic nebrání útočníkovi přidat tolik informací, kolik chce. Toto se nazývá a útok přetečením vyrovnávací paměti. Může způsobit, že systém přestane fungovat a/nebo vymaže aktuálně uložené informace.
SQL Injection
SQL injection je proces přidávání SQL dotazů do vstupních polí. Může mít podobu přidání dotazu SQL do webového formuláře nebo připojení dotazu SQL k adrese URL. Cílem je přimět systém, aby provedl dotaz. SQL injection lze použít k přístupu k zabezpečeným datům ak úpravě nebo odstranění dat. To znamená, že ověření vstupu je zvláště důležité pro jakýkoli web nebo aplikaci, která uchovává důležité informace.
Cross-Site Scripting
Skriptování mezi weby zahrnuje přidání kódu do uživatelských vstupních polí. Často se provádí přidáním kódu na konec adresy URL patřící renomované webové stránce. URL lze sdílet prostřednictvím fór nebo sociálních médií a kód se poté spustí, když na něj oběť klikne. Tím se vytvoří škodlivá webová stránka, která se zdá být hostována na renomovaném webu.
Myšlenka je taková, že pokud oběť důvěřuje cílové webové stránce, měla by také důvěřovat škodlivé webové stránce, která vypadá, že jí patří. Škodlivá webová stránka může být navržena tak, aby ukradla stisknutí kláves, přesměrovala na jiné stránky a/nebo zahájila automatické stahování.
Jak implementovat ověřování vstupu
Ověření vstupu není obtížné implementovat. Jednoduše musíte zjistit, jaká pravidla jsou vyžadována, aby se zabránilo neplatnému vstupu, a poté je přidat do systému.
Zápis všech datových vstupů
Vytvořte seznam všech možných uživatelských vstupů. To bude vyžadovat, abyste se podívali na všechny uživatelské formuláře a zvážili další typy vstupu, jako jsou parametry URL.
Vytvořte pravidla
Jakmile budete mít seznam všech datových vstupů, měli byste vytvořit pravidla, která určují, jaké vstupy jsou přijatelné. Zde je několik společných pravidel k implementaci.
- Whitelisting: Umožňuje vkládat pouze určité znaky.
- Černá listina: Zabraňuje zadávání konkrétních znaků.
- Formát: Povolit pouze vstupy, které dodržují určitý formát, tj. povolit pouze e-mailové adresy.
- Délka: Povolit pouze vstupy do určité délky.
Implementovat pravidla
Abyste mohli implementovat pravidla, budete muset na web nebo aplikaci přidat kód, který odmítne jakýkoli vstup, který je nedodržuje. Kvůli hrozbě, kterou představují neplatné vstupy, by měl být systém před uvedením do provozu otestován.
Vytvářejte odpovědi
Za předpokladu, že chcete, aby ověření vstupu také pomohlo uživatelům, měli byste přidat zprávy, které vysvětlují, proč je vstup nesprávný, a co by se místo toho mělo přidat.
Ověření vstupu je pro většinu systémů požadavkem
Ověření vstupu je důležitým požadavkem pro jakýkoli web nebo aplikaci, která umožňuje vstup uživatele. Bez kontroly nad tím, jaký vstup je přidán do systému, má útočník řadu technik, které lze použít k hackerským účelům.
Tyto techniky mohou způsobit zhroucení systému, jeho změnu a/nebo umožnit přístup k soukromým informacím. Systémy bez ověřování vstupů se stávají oblíbeným cílem hackerů a internet je neustále hledá.
Ověřování vstupu se sice primárně používá pro účely zabezpečení, ale také hraje důležitou roli při informování uživatelů, když něco přidají nesprávně.