Кто-то слышал про Content Security Policy и думает, что это просто очередной заголовок, который добавляют ради галочки. Но на деле CSP — очень полезный инструмент для защиты сайта от всяких внешних скриптов и вставок, которые могут взломать страницу или украсть данные.
Короче, CSP — это набор правил, который ты прописываешь в заголовках ответа с сервера. Он говорит браузеру: «Вот какие источники для скриптов, стилей, картинок и т.п. я считаю безопасными». Если что-то загружается не из разрешённых мест — браузер это блокирует. Это помогает прикрыть дырки типа XSS, когда злоумышленник пытается добавить вредоносный код через форму или уязвимость.
Как на практике починить или проверить CSP? Вот несколько вариантов:
1. Policy report-only — включаешь режим, где браузер только сообщает о нарушениях, но не блокирует. Плюс — можно посмотреть что реально ломается на сайте.
2. Простое правило типа «default-src 'self'» — разрешать загружать всё только с собственного домена.
3. Версия посложнее — отдельные правила для скриптов, стилей, картинок, шрифтов, и даже шельмов типа connect-src (AJAX вызовы).
4. Внедрение nonce и hash — для динамического кода, чтобы браузер точно понимал, что этот скрипт чистый.
Проверять CSP можно через браузерные devtools — вкладка Security или Console покажет, что заблокировано или нарушено. Ещё есть плагины и сервисы, которые помогают генерить и тестить политики.
Минус в том, что если CSP слишком жесткий — сайт может перестать работать нормально (например, сторонние виджеты или аналитика ломаются). Нужно балансировать и тестировать.
В итоге CSP — не панацея, но полезный слой защиты, без которого некоторые сайты просто подставляются под лёгкие атаки. Используют ли вы CSP на своих проектах? Какие варианты прикрутки показались удобными?