Необязательный ключ манифеста, содержащий политику безопасности контента веб-платформы, которая определяет ограничения на сценарии, стили и другие ресурсы, которые может использовать расширение. В этом ключе манифеста можно определить отдельные дополнительные политики как для страниц расширений, так и для изолированных страниц расширений.
Политика «страниц расширения» применяется к контекстам страниц и рабочих в расширении. Это будет включать всплывающее окно расширения, фоновый рабочий процесс и вкладки с HTML-страницами или iframe, которые были открыты расширением. Политика песочницы применяется ко всем страницам, указанным как страница песочницы в манифесте.
Политика по умолчанию
Если политика безопасности контента не определена пользователем в манифесте, свойства по умолчанию будут использоваться как для страниц расширений, так и для изолированных страниц расширений.
Эти значения по умолчанию эквивалентны указанию следующих политик в вашем манифесте:
{
// ...
"content_security_policy": {
"extension_pages": "script-src 'self'; object-src 'self';",
"sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
}
// ...
}
В этом случае расширение будет загружать локальные скрипты и объекты только из собственных упакованных ресурсов. WebAssembly будет отключен, и расширение не будет запускать встроенный Javascript или оценивать строки как исполняемый код. Если добавлена страница песочницы, у нее будут более свободные разрешения для оценки сценариев за пределами расширения.
Минимальные и индивидуальные политики безопасности контента
Разработчики могут добавлять или удалять правила для своего расширения или использовать минимально необходимую политику безопасности контента в соответствии с потребностями своего проекта.
Политика в отношении страниц расширений
Chrome применяет минимальную политику безопасности контента для страниц расширений. Это эквивалентно указанию следующей политики в вашем манифесте:
{
// ...
"content_security_policy": {
"extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
}
// ...
}
Политика extension_pages
не может быть смягчена сверх этого минимального значения. Другими словами, вы не можете добавлять в директивы другие источники сценариев, например, добавлять 'unsafe-eval'
в script-src
. Если вы добавите запрещенный источник в политику вашего расширения, Chrome во время установки выдаст подобную ошибку:
'content_security_policy.extension_pages': Insecure CSP value "'unsafe-eval'" in directive 'script-src'.
Политика в отношении страниц песочницы
Политика по умолчанию для изолированных страниц гораздо более мягкая, чем для страниц расширений, поскольку страница песочницы не имеет доступа к API расширений или прямого доступа к страницам, не изолированным в песочнице. Политику безопасности содержимого песочницы можно настроить по мере необходимости.