Определение простыми словами
Content Security Policy (CSP) — это набор правил, которые веб-сайт или приложение задаёт браузеру для контроля загружаемого и выполняемого контента. Это помогает ограничить источники скриптов, стилей, изображений и других ресурсов, минимизируя риск атак через внедрение вредоносного кода.
Применение CSP существенно повышает безопасность, предотвращая классические веб-уязвимости, такие как межсайтовый скриптинг (XSS) и выполнение непредусмотренных скриптов, что особенно важно в современных веб-приложениях с динамическим контентом.
Сравнение
| Аспект | CSP | Традиционные методы защиты |
|---|---|---|
| Цель | Контроль источников контента и выполнение скриптов | Фильтрация вводимых данных и защита с помощью серверных методов |
| Уровень защиты | Браузерный, клиентский | Серверный, валидация ввода |
| Эффективность против XSS | Высокая при правильной настройке | Средняя, зависит от корректности фильтрации |
| Поддержка браузерами | Современные браузеры | Все браузеры |
Кейсы использования
- Защита корпоративных веб-приложений от XSS-атак.
- Ограничение загрузки сторонних скриптов и ресурсов.
- Предотвращение выполнения инъекций в браузере пользователя.
- Поддержка политики безопасности для публичных сайтов с пользовательским контентом.
- Отслеживание несоответствий безопасности через отчёты CSP.
Негативный пример: Неправильная настройка CSP может заблокировать полезные скрипты и стили, что приведёт к нарушению работы сайта и ухудшению пользовательского опыта.
Технические детали
CSP задаётся сервером в HTTP-заголовке Content-Security-Policy либо через метатег <meta> в HTML:
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; object-src 'none';
Основные директивы:
default-src— источники по умолчанию для всех типов контента.script-src— источники скриптов.style-src— источники стилей.img-src— источники изображений.report-uri— адрес для отправки отчётов о нарушениях CSP.
Пример добавления CSP в Apache:
Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://cdn.example.com; style-src 'self'; img-src *;"
Подробнее о настройках CSP в firewall, управлении доменными именами доменное имя и других мерах безопасности сайта.
🔥 Где это применяется
Частые вопросы
Зачем использовать CSP?
CSP предотвращает выполнение вредоносного кода и XSS-атаки, повышая безопасность веб-сайтов.
Как настроить Content Security Policy?
CSP задаётся через HTTP-заголовок Content-Security-Policy с набором правил ограничения источников контента.
Поддерживают ли все браузеры CSP?
Большинство современных браузеров поддерживают CSP, но старые версии могут работать некорректно.