Предупреждение. Начиная с версии 57, Chrome больше не разрешает внешний веб-контент (включая встроенные фреймы и скрипты) внутри изолированных страниц. Вместо этого используйте веб-просмотр .
Определяет коллекцию страниц приложений или расширений, которые должны обслуживаться в изолированном уникальном источнике, а также, при необходимости, политику безопасности контента для использования с ними. Пребывание в песочнице имеет два последствия:
- Страница в песочнице не будет иметь доступа к API расширений или приложений, а также прямого доступа к страницам, не изолированным в песочнице (она может взаимодействовать с ними через
postMessage()
). На изолированную страницу не распространяется политика безопасности контента (CSP) , используемая остальной частью приложения или расширения (у нее есть собственное отдельное значение CSP). Это означает, что, например, он может использовать встроенный скрипт и
eval
.Например, вот как указать, что две страницы расширения должны обслуживаться в изолированной программной среде с пользовательским CSP:
{ ... "sandbox": { "pages": [ "page1.html", "directory/page2.html" ] // content_security_policy is optional. "content_security_policy": "sandbox allow-scripts; script-src 'self'" ], ... }
Если не указано, значением
content_security_policy
по умолчанию являетсяsandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';
. Вы можете указать значение CSP, чтобы еще больше ограничить песочницу, но оно должно иметь директивуsandbox
и может не иметь токенаallow-same-origin
(возможные токены песочницы см. в спецификации HTML5 ). Кроме того, указанный вами CSP может не разрешать загрузку внешнего веб-содержимого внутри изолированных страниц.
Обратите внимание, что вам нужно указать только те страницы, которые, как вы ожидаете, будут загружены в окнах или фреймах. Ресурсы, используемые изолированными страницами (например, таблицы стилей или исходные файлы JavaScript), не обязательно должны отображаться в списке sandboxed_page
, они будут использовать песочницу страницы, на которой они внедрены.
«Использование eval в расширениях Chrome. Безопасно». более подробно рассказывается о реализации рабочего процесса песочницы, который позволяет использовать библиотеки, которые в противном случае имели бы проблемы с выполнением в соответствии с Политикой безопасности контента расширения по умолчанию .
Страница песочницы может быть указана только при использовании manifest_version
2 или выше.