Кто-то слышал про 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 на своих проектах? Какие варианты прикрутки показались удобными?
CSP реально помогает фильтровать, откуда можно грузить скрипты и другие ресурсы, чтобы не дать вредоносному коду попасть на сайт. Главное — не переборщить с правилами, чтобы не сломать полезные штуки на странице.