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 и хеши.