Hrošč v HTML5 zlonamerni strani omogoča neomejen zapis podatkov na disk

Matej Huš

3. mar 2013 ob 17:15:52

Feross Aboukhadijeh je odkril zanimivega hrošča v vseh večjih brskalnikih (razen Firefoxu), torej v Internet Explorerju, Chromu, Operi in Safariju. Gre za pomanjkljivo implementacijo funkcije LocalStorage kot del standarda HTML5, ki stranem omogoča zapis podatkov na disk. S trikom je mogoče na disk zapisati več gigabajtov podatkov in tako v celoti zapolniti disk oziroma povzročiti sesutje brskalnika.

Doslej so namreč spletne strani lokalne podatke hranile s piškotki, HTML5 pa jim omogoča funkcijo LocalStorage, s katero lahko na disk zapišejo nekaj megabajtov. Da bi se izognili zlorabam, standard predpisuje, da mora biti največja količina prostora, ki jo stran porabi, omejena, ter priporoča to mejo postaviti na 5 MB. Aboukhadijeh je ugotovil, da se ranljivi brskalniki tega ne držijo v celoti. Količina podatkov, ki jih lahko zapiše stran z ene domene, je res omejena (2,5 MB v Chromu, 5 MB v Operi, 10 MB v Internet Explorerju), a lahko omejitev obidemo tako, da postavimo partnerske poddomene (1.primer.com, 2.primer.com, 3.primer.com ...) in z vsake zapišemo čim več podatkov. Aboukhadijeh je pokazal, kako je mogoče na macu vsakih 16 sekund zapisati en gigabajt podatkov na disk. Zanimivo je, da so snovalci standarda takšne trike pričakovali, zato so v standard izrecno zapisali, da naj brskalnik teh trikov ne dopušča. A v praksi je to udejanjil le Firefox. Google je že napovedal popravek, podobno pa lahko pričakujemo tudi od ostalih proizvajalcev.