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

Марико Косака

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

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

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

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

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

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

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

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

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

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

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

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

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