Věděli jste že....?
Každý web obsahuje v průměru 22 zranitelných míst, jako jsou například formuláře nebo nezabezpečené přístupy ke stránce.
Z toho 4 místa bývají kriticky zranitelná.
Data za rok 2019
Představíme si sadu bezpečnostních opatření, které se postarají o bezpečnost vašeho webu i uživatelů.
HTTP Strict Transport Security (HSTS)
HSTS je protokol, který stanovuje, že veškeré stránky na dané doméně požadují připojení přes protokol HTTPS. Pokud se prohlížeč pokusí navštívit stránku pomocí protokolu HTTP, tak request skončí chybou. To samé se stane, pokud vyprší platnost certifikátu a způsobí to znepřístupnění celého webu.
Pokud by protokol HSTS nebyl implementovaný, tak by v případě vypršení certifikátu šlo v prohlížeči přidat bezpečnostní výjimku. Uživatel by si pak mohl web zpřístupnit sám. Pokud je HSTS implementovaný, tak to možné není.
Implementace HSTS
Při implementaci je nutné dávat pozor, jestli chceme tento protokol implementovat na danou doménu včetně všech subdomén. Ty se mohou vyskytovat i na jiném hostingu a nemusí mít protokol HTTPS implementovaný. Jde například o informační systémy a e-mailové schránky, které by pak nemusely fungovat. Konkrétně Seznam je na jedné doméně seznam.cz a email.seznam.cz na jiné (a může být i na jiném serveru kdekoli jinde).
Referrer Policy
Referrer policy je způsob, jak zabránit externím webům zjistit neveřejnou strukturu webu, ze kterého vedou odkazy web. Může se jednat například o stránky, které zatím nechcete zveřejňovat, protože je teprve připravujete nebo se týkají nového, zatím nenabízeného produktu.
Pokud klikneme na jakýkoliv odkaz nebo si načteme externí obrázek z jiného webu, tak je součástí hlavičky také URL adresa, na které jsme na daný obsah klikli. To se děje i u veškerých zdrojů načítaných na webu. Pokud tedy na webu zobrazujeme obrázek z externího webu, tak na externí web přijde požadavek na poskytnutí obrázku obsahující URL naší stránky.
Tento jev lze omezit přidáním meta tagu do hlavičky stránky, kde můžeme například definovat, že pokud není doména načítané věci stejná, tak se nemá poslat adresa stránky, která danou věc zobrazuje, nebo že se má poslat pouze doména, nikoliv konkrétní URL (pouze doména, a ne konkrétní stránka domena/nazevproduktu/ID).
Věděli jste, že...?
9 z 10 webů obsahuje závažná bezpečnostní rizika.
K téměř 40 % webů je možné získat neoprávněný přístup.
U 68 % webových aplikací došlo v roce 2019 ke zneužití nebo úniku dat.
Content Security Policy (CSP)
Bezpečnostní prvek CSP je velké téma, kterému jsme dopřáli více prostoru v samostatném článku.
Subresource integrity
Subresource Integrity je mechanismus, který brání, aby podvrhnuté scripty měly kontrolu i nad naší stránkou. Například hacknutá stránka, ze které se stahuje jQuery, což je javascriptová knihovna umožňující používání částí již existujících kódů.
Při jeho implementaci se vytvoří hash daného souboru, který bude součástí všech inicializací daného externího souboru. Pokud by náhodou došlo k tomu, že by hash načítaného souboru nesouhlasil s hashem uvedeným v kódu, tak vůbec nedojde k načtení daného scriptu. To sice může způsobit nefunkčnost webu, ale pořád je to lepší, než kdyby útočník získal kontrolu i nad naším webem (například by sem vkládal škodlivé kódy, nastavil podvodné přesměrování nebo zcizil přihlašovací údaje).
Na to, aby tento mechanismus šel použít, musí servery, kde se nachází externí script, používat standard CORS (Cross Origin Resource Sharing). Pokud tento mechanismus nepoužívají, nelze ani správným způsobem vygenerovat odpovídající hash (což je např. API poskytující Google Maps).
I přesto, že daný hash existuje, tak jsou situace, kdy toto není vhodné používat. Vývojáři totiž neverzují externě poskytnuté knihovny a provádějí v nich časté změny (viz vyjádření vývojářů Map od Seznamu). Verzují pouze major verze, nikoliv minor či subverze (pouze API obsahující v2, kde se knihovny neustále mění a ve skutečnosti by to bylo například v2.1.10.120).
Nejvíce ohrožené údaje před zneužitím