Útok odražen, ale jen proto, že je příklad kvůli jednoduchosti psán na použití javascriptu. <b>Všechny komponenty</b> popisovaného útoku lze poměrně snadno realizovat i zcela bez skriptování. NoScript tedy nejenže nepomůže, ale dokonce uškodí, protože ukolébá uživatele ve falešném pocitu bezpečí (jak dokazujete vy i první odpovídající na vás).
Bohužel jde otevřít nové okno bez adresního řádku a běžný BFU adresu nemůže zkontrolovat. Vím že teď nemluvím o tabu ale o novém okně. Na druhé straně, co brání tomu otevřít v tabu správnou adresu a nad prohlížečem otevřít okno s falešným obsahem, které překryje původní obsah :-(
Proč by měl útočník měnit DOM? Pro dosažení takřka stejného efektu mu stačí META HTTP-EQUIV=„refresh“ s rozumně dlouhou dobou do refreshe. Naopak to ještě bude mít výhodu, že browser změněnou stránku zvýrazní, protože se změnila – uživatele to ještě dál přesvědčí o tom, že byl prostě odhlášen po delší době nečinnosti…
Tento „refresh“ sa dá vo Firefoxe jednoducho zakázať. http://i5.photobucket.com/albums/y159/twilight7609/screenshot_1.jpg (tretie zaškrtávatko zhora).
Zjištění historie bez problému? To nejde ani s javascriptem, jde se jen v historii posouvat.
https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history
Sakra, v HTML5 půjde javascriptem historii měnit (!!!). Někdo by jim měl vysvětlit, že je to bezpečnostní díra jak prase.
Aha, jo, máš pravdu, zjistit o URL, jestli je v historii, jde requestem na obrázek z CSS. To mě nenapadlo. Není to ale úplně to samé jako kdyby si skript mohl vypsat URL v historii jak jdou za sebou – to by bylo horší; jde prostě (s JS i bez něj) zjistit, jestli mám konkrétní URL někde v historii, nebo ne.
to je hezky, ze mas patent na rozum …
https://addons.mozilla.org/en-US/firefox/addon/722/
v 1.9.9.81
+ Experimental blocking of page refreshes happening inside untrusted
unfocused tabs, should provide protection against Aviv Raff's scriptless
„tabnabbing“ variant. Enabled by default, can be controlled through the
noscript.forbidBGRefresh about:config integer preference:
0 – no blocking
1 – block refreshes on untrusted unfocused tabs
2 – block refreshes on trusted unfocused tabs
3 – block refreshes on both trusted and untrusted unfocused tab
Address patterns matching pages which shouldn't be affected can be
listed in the noscript.forbidBGRefresh.exceptions preference