Что такое CSP?
DOM и браузер
CSP (Content-Security-Policy) — это HTTP-заголовок безопасности, который указывает браузеру, из каких источников разрешено загружать ресурсы (скрипты, стили, изображения), защищая прежде всего от XSS.
Как работает
Сервер присылает заголовок с правилами (директивами), и браузер блокирует всё, что им не соответствует:
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; img-src *default-src 'self'— по умолчанию только свой origin.script-src— откуда можно грузить/выполнять скрипты.style-src,img-src,connect-src,font-src— по типам ресурсов.
От чего защищает
- XSS — блокирует выполнение инлайн-скриптов и скриптов с чужих доменов, даже если злоумышленник внедрил
<script>. - Инъекции ресурсов, кликджекинг (
frame-ancestors).
Практики
- Запретить
'unsafe-inline'и'unsafe-eval'для скриптов (иначе XSS-защита ослаблена). - Использовать nonce или hash для нужных инлайн-скриптов.
- Режим
Content-Security-Policy-Report-Only— только отчёты без блокировки (для внедрения).
Коротко для собеседования
CSP — заголовок безопасности, ограничивающий источники ресурсов (скрипты, стили, изображения) через директивы (default-src, script-src и т.д.). Главная задача — защита от XSS: блокирует инлайн и сторонние скрипты. Для нужных инлайн-скриптов используют nonce/hash.