ClickJacking

Školení, která pořádám

Útok ClickJacking spočívá v tom, že útočník na své stránce zobrazí v rámu naši aplikaci a přiměje uživatele, aby do ní klikal (např. formou hry, kterou přes rám zobrazí, přiměje uživatele, aby prováděl útočníkem požadované operace).

Bránit se tomu donedávna dalo pouze skriptem, který detekoval, jestli aplikace není zobrazena v rámu, JavaScript ale uživatel může mít vypnutý (v IE navíc může útočník skripty v rámu zakázat). Moderní prohlížeče (IE8, Safari 4, Chrome 2, Firefox zatím pouze s extenzí NoScript) ale naštestí zavedly podporu hlavičky X-Frame-Options: deny, která zobrazení stránky v rámu zabrání systémově. Tuto hlavičku je vhodné posílat na stránkách s akcemi specifickými pro jednoho uživatele (tedy na stejných stránkách, které mají obranu proti CSRF).

Přijďte si o tomto tématu popovídat na školení Bezpečnost PHP aplikací.

Jakub Vrána, Výuka, 7.10.2009, diskuse: 8 (nové: 0)

Diskuse

ikona v6ak:

Dodám, že zatímco v CSRF je potřeba bránit akční stránku, tak tady je potřeba bránit "odkazující" stránku.

Michal Raška:

V čem spočívá užitek v klikání na mou aplikaci na jiné stránce? Možná snad kvůli  reklamě...

m.:

http://www.youtube.com/watch?v=gxyLbpldmuU

Michal Raška:

Díky moc, je to jasne... To snad neni pravda...

ikona Jakub Bouček:

Nechápu, jak lze cokoliv překrýt jakýmkoliv obrázkem, aby se při tom klikací událost přenesla na objekt níže?

ikona Jakub Vrána OpenID:

Události probublávají dospod. Hra navíc může spočívat v tom, že vždycky malý kousek původní aplikace zůstane vidět (a do něj má uživatel kliknout).

fos4:

http://www.quirksmode.org/js/events_order.html

kocour v botách:

Pár dalších informací...
http://www.webmasterworld.com/webmaster/4022867.htm

Diskuse je zrušena z důvodu spamu.

avatar © 2005-2024 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.