Nokia 630 ZDARMA pro nové majitele MSDN

IE8 - rychlost nebo bezpečí? Mám zcela jasno.

  • Comments 9

Nejjednodušší odpověď je obojí. Ale pokud bych si jako koncový uživatel i jako vývojář měl dnes vybrat, jak se bude produkt umísťovat na světových žebříčcích, asi bych přece jen preferoval zvýšené bezpečí. Tím určitě nechci říci, že IE8 nijak v rychlosti neoslňuje, ale musím dát za pravdu Tomáši Jechovi, který napsal první komentář na můj poslední post o IE8. Ten je na tom v rychlosti interpretace JavaScriptu lépe než IE7, ale bohužel se nemístil na prvních pozicích v testech typu SunSpider. Asi by se dalo polemizovat o nutnosti vyhrát v tomto testu, ale věřím, že jisté a nezanedbatelné skupině uživatelů může tento žebříček připadat užitečný. Mne osobně ne. Proč? Jednak mám pocit, že na stažení stránky často čekám daleko déle než je doba, za kterou proběhne JavaScript, jednak si myslím, že stránek obsahující tisíce řádků kódu v tomto jazyce tvoří pouze malé procento. V dlouhodobém pohledu si navíc myslím, že web aplikace, které za sebou budou nést extenzivní logiku, budou muset být tvořeny v jiných technologiích. Ať je to Microsoft Silverlight, který dnes dovede spouštět bezpečným způsobem aplikaci v nativním kódu, nebo to budou technologie konkurence, jako je Adobe. Pro porovnání výkonnosti JavaScriptu a .NET jazyků v aplikační logice Silverlight komponenty doporučuji vyzkoušet hru šachy (C# vs JS). Jasné, co.

Bezpečnost nade vše

Možná, že jsem paranoidní, ale vždy, když se pohybuji v prohlížeči po internetu, říkám si, jestli jsem pro bezpečnost svého počítače udělal dost. Přesto, že si myslím, že ano, vždy se dozvím o nějakém novém typu útoku. Naposled to bylo, když jsem si četl o bezpečnostních vylepšeních právě zmiňované nejnovější verze Internet Exploreru. Ten obsahuje ochranu proti útoku s názvem Clickjacking. Princip je docela pěkně popsán na stránkách SecTheory. V podstatě spočívá v tom, že útočník obelstí uživatele, jenž zcela nevědomě klikne na odkaz nebo tlačítko a potvrdí tak požadovanou transakci. Typicky povolení přístupu nebo i třeba převod peněz. Jak to provede? Původní webovou stránku, například webshopu, překryje elementem IFRAME bez rámu, jehož obsah je místy průhledný. Z původní stránky tedy zůstane vidět pouze ono klíčové tlačítko a zbytek je překryt zcela neškodným obsahem. Uživatel pak snadno podlehne iluzi, že potvrzuje něco zcela jiného. Tento triviální příklad můžete najít i zde. Pokud vás znepokojil, určitě si předčtěte na odkazu v předchozí větě jako snadno tomuto typu v útoku v IE8 předcházet.

Clickjacking je ovšem pouze jedním z případů něčeho daleko obludnějšího – Cross Site Request Forgery (CSFR). Jak se správně píše na webu Jeremiah Grossmana, proti těmto útokům není jednoduché obrany. Nejde totiž o chybu produktu, nýbrž kombinaci dostupných technologií, jako jsou např. cookies, a sociálního inženýrství. Úlohou prohlížeče je pak tyto triky identifikovat a znemožnit nebo minimálně provést obtížnější. Mezi technologie v IE8 pro eliminaci těchto útoků patří:

  • Cross-Site Scripting Filiter
  • Sanitace HTML (metoda toStaticHTML) a serializace a parsování JSON objektů (metoda JSON.parse a JSON.stringify)
  • Režim InPrivate Browsing
  • Cross-domain Request objekt (XDomainRequest)

A co s ActiveX?

Internet Explorer si svou reputaci bezpečnosti asi nejvíce pokazil technologií ActiveX. Ta umožňuje spouštět v prohlížeči binární komponenty. To má celou řadu výhod, ale i zároveň obrovskou náchylnost k prolomení bezpečnosti. Je zajímavé sledovat, kolik AxtiveX prvků i přes tuto „vadu na kráse“ je na internetu a zejména intranetech používaných. Zrušit jejich podporů v nové verzi by bylo velmi nerozumné, ale ponechat je bez povšimnutí ještě nerozumnější. Na co tedy v IE8 můžete těšit? ActiveX komponenty je v IE8 možné rozdělit na ty, instalované pouze pro aktuálního uživatele „Per-user ActiveX“ a pro danou site „Per-site ActiveX“. Aniž bych zacházel do hlubokých detailů, Per-user ActiveX se instaluje pro použití aktuálního uživatele a pokud tento nemá admin oprávnění, případná bezpečnostní chyba může ovlivnit operační systém do té míry, do které ho může ovlivnit uživatel sám. Pro takovou instalaci nemusí mít uživatel ani administrátorské oprávnění. Instalovat tak může např. i komponentu Silverlightu bez potřebné elevace práv (lze zakázat v Group Policy)

Per-site ActiveX je pak instalací komponenty tak, aby byla použitelná pouze pro dané URL. Tím lze zabránit, aby komponenta byla využita či zneužita z jiného webu.

Žebříček nevítězí

Mým cílem určitě nebylo nepokrýt všechny bezpečnostní novinky v IE8. O těch se lze dobře dočíst na blogu IE8 týmu, pokud si vyberete tag Security. Obdobě může najít popis celé řady nových funkcí z pohledu vývojáře, ke kterým se ještě v budoucnu dostanu. Co jsem však určitě chtěl říci je, že nová verze prohlížeče pro mne dnes má daleko vyšší cenu, pokud v přehledu jeho nových vlastností vidím dlouhý seznam bezpečnostních vylepšení, než jedno číslo určující pozici v rychlostních testech interpretace JavaScriptu. Trochu mi to totiž přijde jako hon za co nejvyšší rychlostí nebo zrychlení auta. Velice mála tuto vlastnost využiju, zatím co 7 airbagů a kvalitní deformační zóny přece jen ocením více.

Dalibor Kačmář, Platform Strategy Advisor

  • PingBack from http://blog.a-foton.ru/index.php/2009/03/23/ie8-rychlost-nebo-bezpeci-mam-zcela-jasno/

  • Nějak mi uniká smysl testů výkonu JavaScriptu typu smyčka od 1 do 1000000000 a i smysl samotných ACID testů, to vůbec nic nevypovídá o prohlížeči, pokud chceme sledovat, jak se chová v reálném provozu. Copak se někdo v reálném provozu dívá na ACID test nebo počítá pí na milion desetinných míst?

  • Pokud chci mít browser bezpečný, tak si do něj nenainstaluji technologii, která umožní spouštění nativního kodu, tudíž budu používat javascript a pak je pro mne důležité aby jej prováděl rychle.

    Acid testy jsou pro tvůrce prohlížečů, je to kontrola zda prohlížeč splňuje danou normu...

  • to Petr: Do značné míry se dá souhlasit, ale přesto existují situce, kdy to jinak nejde. Např. když potřebuji přistoupit k nějakým HW periferiím typu čtečka karet. S obdobnou pochybností bych byl schopen realizovat např. vykreslovací komponentu 3D grafiku v JavaScriptu. Jinými slovy, přemíra ActiveX komponent určitě škodí, ale snaha zobrazit a přistupovat v prohlížeči k čemukoli na mém PC, a to ještě rychle, tuto techniku vyžaduje. Nativním komponentám se nedá v současné době vyhnout. Toto platí nezávisle na typu prohližeče. Ať jde o IE, FF, Safari či jiné.

  • Můj předchozí příspěvek se někam vytratil, proto zkusím reagovat znovu, tentokrát již zkráceně.

    IE8 přínáší hromadu užitečných rozšíření, které používám už od první bety. IE je pro mě dál primární prohlížek, který nedám z ruky. Jen mi přijde trochu zavádějící říkat, že je rychlejší než ostatní prohlížeče. V IE8 se sice dočkali zrychlení vykreslovacího jádra a zpracování javascriptu, ale stál

  • Můj předchozí příspěvek se někam vytratil, proto zkusím reagovat znovu, tentokrát již zkráceně.

    IE8 přínáší hromadu užitečných rozšíření, které používám už od první bety. IE je pro mě dál primární prohlížeč, který nedám z ruky. Jen mi přijde trochu zavádějící říkat, že je rychlejší než ostatní. V IE8 jsme se sice dočkali zrychlení vykreslovacího jádra, ale nemyslím si, že je to primární ukazatel rychlosti celého prohlížeče.

    Při práci s webovou aplikací je to z nezanedbatelné části i práce s pamětí, rychlost modifikace html z javascriptu, renderování velkých obrázků a další.

  • Omlouvám se za SPAM diskuze, měl jsem problémy s připojením a příspěvek v minulém článku se mi vůbec nezobrazil. Předchozí příspěvky prosím smažte.

    O javascriptu je pravda, že oproti IE7 (a i betám IE8) se jeho interpretace ve finálním IE8 dost zlepšila. Chválím. V porovnání například s IE6 si myslím, že je optimalizace obrovská.

    Jen si dovolím ještě připomenout proč mi přijde právě JavaScript tak důležitý. Ve webových stránkách se používá (Live služby hovoří za vše). Často i přímo k zajištění hlavní funkcionality. Pokud pak pracujete například s obsáhlejším rozbalovacím seznamem, či přepínáním některých záložek, je svižný JavaScript opravdu znát.

  • Ahoj Dalibor,

    ten Per-user ActiveX je v IE8 a v Group Policy standardne povolene alebo zakazane? Ide mi o to, ci si Silverlight do IE8 nainstaluju uzivatelia bez opravneni a bez explicitneho nastavenia v Group Policy.

    Vdaka ;-)

    spigi

  • Ahoj Spigi,

      v RTW jsem to netestoval, ale v betách to bylo implicitně povoleno. Jinak doporučuji také přečíst http://msdn.microsoft.com/en-us/library/dd433049(vs.85).aspx

    Dalibor

Page 1 of 1 (9 items)
Leave a Comment
  • Please add 1 and 1 and type the answer here:
  • Post