Co dělá X-Frame-Options?

HTTP hlavičky jsou typem metadat zasílaných s webovými požadavky a odpověďmi. Informace, které poskytují, mohou být důležité nebo mohou být jednoduše informační. Záhlaví zabezpečení jsou podmnožinou „záhlaví odpovědí“, které může nastavit webový server, jsou jednou z funkcí, které mohou pomoci vyřešit řadu bezpečnostních problémů. Jedna z bezpečnostních hlaviček nazvaná „X-Frame-Options“ je navržena tak, aby zabránila útokům typu click-jacking.

Click-Jacking

Click-jacking, také známý jako „User Interface Redressing“, je problém, kdy je útočník schopen přimět uživatele, aby klikl na něco, co není to, co se zdá být. U webových stránek se to provádí překrytím průhledné webové stránky přes viditelnou. Při tomto typu útoku si uživatel myslí, že interaguje s viditelným webem, ale ve skutečnosti nevědomky ovlivňuje transparentní web.

Útočník by například mohl vytvořit webovou stránku, na které je pravděpodobné, že uživatel klikne na tlačítko, možná na tlačítko pro přehrávání videa. V průhledné vrstvě v horní části této webové stránky je druhá webová stránka, například webová stránka pro smazání vašeho účtu na Facebooku pomocí tlačítka „Smazat účet“ umístěného přímo nad tlačítkem přehrávání. V tomto scénáři, když se uživatel pokusí kliknout na tlačítko Přehrát, ve skutečnosti na tlačítko smaže svůj účet na Facebooku.

Click-jacking spoléhá na schopnost zobrazit cílový web přes horní část fiktivního webu prostřednictvím procesu zvaného „rámování“. Rámování používá prvek HTML „iframe“, který dokáže načíst celou samostatnou webovou stránku na jiné stránce. Načtením cílové webové stránky do rámečku, jejím pečlivým umístěním a jejím zprůhledněním si oběť vůbec neuvědomuje, že je přinucena provést akci.

X-Frame-Options

Záhlaví HTTP odpovědi „X-Frame-Options“ je volitelná funkce, kterou lze nastavit pro webové stránky v konfiguračních souborech serveru. X-Frame-Options zabraňuje načítání webových stránek v prvcích iframe, což zabraňuje jejich překrytí přes jiný web. Prohlížeč oběti ve skutečnosti používá bezpečnostní kontrolu, protože všechny prohlížeče respektují hlavičku X-Frame-Options a odmítnou načíst jakékoli webové stránky s hlavičkou nastavenou v rámci.

Záhlaví umožňuje vlastníkovi webu nakonfigurovat, jak omezující je nastavení. Existují dvě nastavení: „X-Frame-Options: DENY“ zabrání tomu, aby se chráněná webová stránka někdy zarámovala. Druhá možnost, „X-Frame-Options: SAMEORIGIN“, umožňuje zarámování chráněných webových stránek pouze v případě, že stránka načítající rámec má stejný název domény. V tomto případě můžete načíst rámec na svůj vlastní web, ale nikdo jiný jej nemůže načíst na ten svůj.