--- 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 ---
| Тип | Строка |
|---|---|
| Обязателен | Нет |
| Пример |
"content_security_policy": "default-src 'self'" |
Политика защиты содержимого применяется к расширениям автоматически. Изначальная политика защиты содержимого ограничивает источники, из которых расширение может загружать <script> и <object> ресурсы, а так же препятствует потенциально опасным практикам, например использованию eval(). Смотрите изначальные правила защиты содержимого, чтобы узнать о конкретных последствиях применения изначальных правил.
Ключ "content_security_policy" в manifest.json используется для ослабления или ужесточения политики защиты содержимого. Значения для этого ключа устанавливаются в точно таком же виде, как и для Content-Security-Policy HTTP заголовка. Смотрите Использование политики содержимого для получения общего представления о синтаксисе для написания правил политики.
Примеры использования ключа могут включать в себя:
"script-src" директиве.eval() и похожих функций, добавляя 'unsafe-eval' в {{CSP("script-src")}} директиву.При написании правил по защите содержимого, вы имеете некоторые ограничения:
'self'.https: схему.* со следующим за ним доменным публичным суффиксом (например "*.co.uk" и "*.blogspot.com" являются не разрешёнными значениями, но "*.foo.blogspot.com" разрешёно).blob:, filesystem:, moz-extension: и https:.'none', 'self' и 'unsafe-eval'.Разрешает загрузку скриптов из "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 из-за значительных проблем с безопасностью.
{{Compat}}