--- title: content_security_policy slug: Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy tags: - Web-расширение - Безопасность - Расширение translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy ---
{{AddonSidebar}}
Тип Строка
Обязателен Нет
Пример
"content_security_policy": "default-src 'self'"

Политика защиты содержимого применяется к расширениям автоматически. Изначальная политика защиты содержимого ограничивает источники, из которых расширение может загружать <script> и <object> ресурсы, а так же препятствует потенциально опасным практикам, например использованию eval(). Смотрите изначальные правила защиты содержимого, чтобы узнать о конкретных последствиях применения изначальных правил.

Ключ "content_security_policy" в manifest.json используется для ослабления или ужесточения политики защиты содержимого. Значения для этого ключа устанавливаются в точно таком же виде, как и для Content-Security-Policy HTTP заголовка. Смотрите Использование политики содержимого для получения общего представления о синтаксисе для написания правил политики.

Примеры использования ключа могут включать в себя:

При написании правил по защите содержимого, вы имеете некоторые ограничения:

Примеры

Работающие примеры

Разрешает загрузку скриптов из "https://example.com": (смотрите примечание 1)

"content_security_policy": "script-src 'self' https://example.com; object-src 'self'"

Разрешает загрузку скриптов из любого субдомена "jquery.com":

"content_security_policy": "script-src 'self' https://*.jquery.com; object-src 'self'"

Разрешает использование eval() и его товарищей:

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';"

Разрешает встроить скрипт: "<script>alert('Hello, world.');</script>":

"content_security_policy": "script-src 'self' 'sha256-qznLcsROx4GACP2dm0UCKCzCG+HiZ1guq6ZZDob/Tng='; object-src 'self'"

Оставляет изначальные правила, но так же требует, чтобы могли загружаться только изображения, запакованные вместе с расширением:

"content_security_policy": "script-src 'self'; object-src 'self'; img-src 'self'"

Разрешает загрузку только тех ресурсов, которые были запакованы вместе с расширением:

"content_security_policy": "default-src 'self'"

Недопустимые примеры

Политика, не включающая "object-src" директиву:

"content_security_policy": "script-src 'self' https://*.jquery.com;"

Политика, не включающая ключевое слово "self" в "script-src" директиве:

"content_security_policy": "script-src https://*.jquery.com; object-src 'self'"

Использование отличной от https схемы для загрузки удалённых ресурсов:

"content_security_policy": "script-src 'self' http://code.jquery.com; object-src 'self'"

Использование универсального символа в связке с публичным доменным суффиксом:

"content_security_policy": "script-src 'self' https://*.blogspot.com; object-src 'self'"

Указание схемы без хоста:

"content_security_policy": "script-src 'self' https:; object-src 'self'"

Использование неподдерживаемого ключевого слова 'unsafe-inline':

"content_security_policy": "script-src 'self' 'unsafe-inline'; object-src 'self'"

1. Примечание: Работающие примеры демонстрируют правильное написание политики защиты содержимого. Тем не менее, расширения с политикой, включающей ключевые словами 'unsafe-eval', 'unsafe-inline', разрешающей загрузку удалённых скриптов и ресурсов, а так же blob файлов не будут допущены к распространению на addons.mozilla.org из-за значительных проблем с безопасностью.

Browser compatibility

{{Compat("webextensions.manifest.content_security_policy")}}