Песочница браузера

Mariko Kosaka

Для защиты от атак разработчику необходимо устранить уязвимости и добавить в приложение функции безопасности. К счастью, в веб-браузере доступно множество функций безопасности. Некоторые из них разработчики могут включить по желанию, а некоторые включены по умолчанию для защиты пользователей.

Идея «песочницы»

браузер как песочница
Рисунок: Браузер как песочница

Современные веб-браузеры построены на идее «песочницы». Песочница — это механизм безопасности, используемый для запуска приложения в ограниченной среде. Подобно физической песочнице на детской площадке, где дети могут создавать все, что захотят, не создавая беспорядка в других местах, код приложения имеет свободу выполнения в ограниченной среде. Например, JavaScript может добавлять и изменять элементы на странице, но может быть ограничен в доступе к внешнему JSON-файлу. Это связано с функцией песочницы, называемой «один источник» (same-origin).

Зачем нужна песочница?

Каждый день пользователи интернета скачивают произвольный код и многократно запускают его на своих компьютерах или телефонах. Если бы кто-то сказал вам: «Эй! Скачайте и запустите это приложение!», вы бы, вероятно, задумались, является ли это приложение надежным источником, почитали бы информацию о разработчике приложения или внимательно изучили отзывы. А как насчет того, когда кто-то присылает вам URL-адрес с пометкой «посмотрите эту запись в блоге»? Вы, вероятно, кликнули бы на него, не задаваясь вопросами типа «Какой JavaScript-код будет загружен на этом сайте?».

Песочница браузера — это ключевая функция, которая делает просмотр веб-страниц беспроблемным, обеспечивая более безопасное выполнение произвольного кода.

Обеспечьте безопасность за счет продуманного дизайна.

Если браузер изолирует каждое веб-приложение в изолированной среде, стоит ли нам вообще беспокоиться о безопасности? Безусловно, да!

Во-первых, функции песочницы не являются идеальной защитой. Несмотря на усердную работу разработчиков браузеров, в них могут быть уязвимости, и злоумышленники всегда пытаются обойти песочницу (например, с помощью атаки Spectre ).

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

Заворачивать

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