Až donedávna byl internet pojmem představujícím prostředí, kde bylo možné většinu času najít pouze webové stránky. Poslední dobou se však stáváme svědky nástupu webových aplikací, postavených různými technologiemi, pro různé účely. Stejně jako klasické desktopové aplikace potřebují pro svůj běh operační systém, i webovým aplikacím by bylo vhodné dopřát podobné prostředí. Moderní prohlížeče, jako Firefox 3.5, nadcházející Opera 10, Internet Explorer 8 nebo Google Chrome, představují solidní základnu pro funkci webových aplikací, ale setkáváme se zde s určitými nevýhodami, vycházejícími z jejich – již archaické – koncepce. Nevýhody se týkají hlavně přístupu k systémovým zdrojům, a samozřejmě bezpečnosti.
Tyto problémy a otázky vedly společnost Microsoft k tomu, aby začala pracovat na zcela novém konceptu a významu slova „webový prohlížeč“. V roce 2008 byl prezentován projekt MashupOS, který si dával za úkol řešit právě bezpečnostní problémy okolo mashupů. Zde byl vývojářům webových aplikací navrhován nový tag „sandbox“, kterým by mohli omezovat propojení s ostatními prvky na stránce. Nakonec se sandbox dostal do specifikace HTML5 jako atribut pro tag iframe.
Projekt Gazelle se oproti jeho předchůdci zaměřuje i na další oblasti, jako například přidělování periferií webovým aplikacím a dále zdokonaluje přístup k zabezpečení a způsobu práce s webovými aplikacemi. Právě zmíněné periferie mohou představovat problém při vývoji webových aplikací a často vyžadují použití plug-inu v zájmu jejich zpřístupnění.
Stále více web apps navíc využívá určitých dat, která čerpají z různých zdrojů. Může se například jednat o již zmíněné iframy nebo třeba obrázky. Ty představují potenciální nebezpečí a mohou být předmětem zneužití. Dalším problémem jsou XSS (cross-site scripting) útoky, kdy může zákeřný uživatel zneužít např. vkládacího pole u formuláře a přinutit stránku načíst externí kód.
Gazelle se k webovým stránkám/aplikacím chová obdobně, jako operační systém k programům. Všem běžícím webovým aplikacím je přiřazen jejich vlastní proces, se všemi bezpečnostními právy i omezeními. Navíc je každá stránka izolována ve svém vlastním sandboxu a nemůže tak přímo ovlivňovat chod jiných, otevřených stránek, samotného prohlížeče nebo operačního systému. Pokud nějaká aplikace přistupuje k datům třeba na jiné doméně, je tento požadavek izolovaný do samostatného procesu a nedochází tak ke sloučení více stránek v jeden proces. Tímto se výrazně snižuje riziko XSS zneužití a rýsuje se hlavní výhoda a odlišnost Gazelle od klasických prohlížečů.
OS pro web apps není WebOS
Ačkoli může akronym WebOS svádět ke spojování s počiny jako je Gazelle, není tomu tak. Na rozdíl od WebOS, který běží vzdáleně, jako součást nějakého cloudu, OS pro web apps běží lokálně v rámci běžného operačního systému. V případě Gazelle tvoří jeho kernel vrstvu mezi operačním systémem a webovou aplikací a je mu vyhrazen také samostatný proces. Kernel je jediná část celého programu, která má možnost přímo manipulovat se systémovými prostředky a rozdělovat je podle potřeby webovým aplikacím. Ty si nemohou pro změnu o prostředky žádat jinak než prostřednictvím kernelu, protože jsou uzavřeny v sandboxech.
Plug-iny jsou spravovány obdobně jako weby. Pro každý web, kde je určitý plug-in (třeba Flash) použit, je vytvořen samostatný proces pro daný plug-in. Kernel přistupuje ke všem zdrojům samostatně a kontroluje tak například i komunikaci se sítí a zobrazení. Důležitým faktem je, že Gazelle odlišuje mezi tím, jak je stránka renederována a jak je stránka ve finále prezentována. Soudobé prohlížeče tyto dvě činnosti kombinují a otvírají tím možnosti útokům.
Celý projekt Gazelle je zaměřen spíše na bezpečnost než na zpětnou kompatibilitu, i když v jeho použití se stávajícími weby není problém. Podle slov Microsoftu testovali jeho pracovníci Gazelle s úspěchem na devatenácti z dvaceti nejoblíbenějších webů dle Alexy.
Kdy se ho dočkáme?
Všechny tyto inovace, ač jsou velice zajímavé, by byly pro okamžitou realizaci příliš velkým soustem. Gazelle tedy nebude novým IE9, ale zůstává pouze technickým cvičením Microsoftu, společně s MashupOS. Může tomu nasvědčovat i použité zastaralé renderovací jádro z Internet Exploreru 7. Představuje ale neoddiskutovatelně milník ve vývoji webu a přináší čerstvý vítr do plachet jinak celkem klidnému světu prohlížečů.
Poprvé byl na webové aplikace použit princip standardního operačního systému a ověřena jeho funkčnost v takovém prostředí. Konečně, s čím dál komplexnějšími aplikacemi, stěhujícími se za vyšší mobilitou na internet, je třeba, aby existoval i silný základ, na kterém by mohly kotvit, a princip MashupOS této představě vyhovuje velice dobře.
Přehled komentářů