Вебсправочник
Основы веб-разработки

Content-Security-Policy: разрешённые источники ресурсов

Content-Security-Policy ограничивает источники ресурсов и отдельные возможности документа. Политика может уменьшить последствия внедрения кода, но не заменяет безопасную обработку данных.

Назначение

Content-Security-Policy ограничивает источники ресурсов и отдельные возможности документа. Политика может уменьшить последствия внедрения кода, но не заменяет безопасную обработку данных.

Как это работает

Директивы задают правила для типов ресурсов. Default-src служит резервом для ряда директив, а script-src уточняет загрузку скриптов. Для постепенного внедрения используют заголовок Content-Security-Policy-Report-Only: он позволяет выявлять нарушения без блокировки политикой.

Пример

Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self'

# Это пример HTTP-заголовка для тестирования, а не готовая политика любого сайта.

Что должно получиться

Политика объявляет источники своего origin и запрет объектов. В режиме Report-Only нарушения можно изучать в инструментах браузера; получение отчётов на сервер требует отдельной настройки и безопасного обработчика.

Граница применения и частая ошибка

Правило script-src self не разрешает автоматически встроенные скрипты. Слишком широкие исключения, например unsafe-inline, способны существенно ослабить защиту. Не включайте блокирующую политику на всём рабочем сайте без проверки форм, редактора и сторонних интеграций.

Самостоятельная проверка

На отдельном тестовом сайте перечислите все источники скриптов, стилей и изображений. Включите режим наблюдения, пройдите пользовательские сценарии и разберите каждое нарушение. Для встроенного доверенного кода отдельно изучите nonce и хеши.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.