Изоляция закладок

В последнее время изоляция закладок в браузере стала популярной темой. В сегодняшней статье мы расскажем, что такое изоляция закладок, как она работает и какие преимущества дает.

Что это такое?

Изоляция закладок представляет собой способ увеличения надежности браузера путем изоляции влияния сбоя. В зависимости от того, каким образом реализована данная функция, изоляция закладок может помочь в предотвращении некоторых атак. Сегодня есть две реализации функции, каждая из которых имеет свои преимущества.

В браузере с закладками без изоляции проблема состоит в том, что сбой в любой из закладок может привести к аварийному завершению работы всего браузера. Так, к примеру, ошибка в веб-странице в Firefox 3.6 или IE7 приведет к завершению работы всего браузера. И хотя в современных браузерах предусмотрена функция восстановления закладок после сбоя, идея изоляции состоит в ограничении влияния проблемы на работу браузера. Демонстрацию работу функции можно посмотреть здесь (нужно прокрутить до 13:25).

Краткая историческая справка

5 марта 2008 года Microsoft представила первую бета-версию IE8 с Loosely-Coupled IE (или для краткости LCIE). Это стало первой массовой реализацией изоляции закладок. 2 сентября 2008 года в первой бета-версии Google Chrome появилась функция «изоляции процессов». Разработчики Mozilla Firefox недавно обсуждали так называемые «внепроцессные дополнения» (OOPP), или проект Electrolysis, призванный изолировать дополнения к Firefox (к примеру, Flash) от остального браузера.

Каковы преимущества?

В браузере есть целый ряд подсистем, которые можно изолировать друг от друга, и несколько способов изоляции.

IE8 изолирует процесс фрейма (заголовок, кнопку «Назад», адресную строку и т.д.) от процесса закладки (который отображает веб-страницы). Если что-то привело к сбою страницы (например, дополнение наподобие Flash, сценарий или механизм визуализации), сам фрейм и другие закладки продолжат работу. IE изолирует всю закладку – весь код, данные и дополнения – с целью обеспечить надежную работу IE.

В дополнение к использованию нескольких процессов, IE8 в Windows 7 и Vista (и IE7 в Vista) по причинам безопасности помещает процессы закладок в изолированную область. В частности, закладки работают без привилегий для установки ПО, внесения изменений в настройки или файлы любого пользователя. Защищенный режим работы обеспечивает глубокую защиту таким образом, чтобы (в большинстве случаев) уязвимости в браузере или дополнениях (например, Flash) не могли нанести сколько-нибудь серьезный вред компьютеру. Технически, существует несколько типов изоляции (изоляция процессов, изоляция источников и т.д.), и песочниц (уровни целостности, ограниченные подмножества, зеркалирование DOM и т.д.).

Изоляция в Chrome несколько отличается. Из документации ясно, что разработчики разделили процессы для визуализации, фреймов и дополнений (естественных дополнений, а не расширений). Как в случае с IE7, некоторые элементы Chrome работают с пониженными привилегиями. В отличие от IE (в котором дополнения работают с пониженными привилегиями), дополнения в Chrome по умолчанию запускаются с большим количеством привилегий. Как в случае с любыми архитектурными различиями, есть сценарии, которые лучше при одной архитектуре и хуже при другой. Теоретически, от уязвимости в Flash у Chrome нет таких средств защиты, как у защищенного режима в IE.

Изоляция является крайне важной частью современных браузеров. Она является основой надежной работы браузера. Кроме того, она может увеличить безопасность. В зависимости от реализации, она также может оказывать влияние на совместимость с сайтами и браузерными дополнениями.

Энди Циглер (Andy Zeigler),

программный менеджер Internet Explorer