Mastodon Mastodon Mastodon Mastodon

Content Security Policy

Обновлено: · CyberSecureFox Editorial Team

Content Security Policy (CSP) — механизм защиты в браузере, с помощью которого сайт указывает, откуда разрешено загружать скрипты, стили, фреймы и другой контент, ограничивая последствия атак внедрения.

Как работает CSP

Сервер передаёт политику в заголовке ответа HTTPContent-Security-Policy. После этого браузер отказывается загружать или выполнять всё, что политикой не разрешено. Важные директивы:

  • default-src и script-src — разрешённые источники контента и JavaScript; встроенные скрипты блокируются, если у них нет подходящего nonce или хеша;
  • ‘strict-dynamic’ — доверие скриптам, загруженным уже доверенными скриптами, что делает политики на основе nonce практичными;
  • frame-ancestors — какие сайты могут встраивать страницу во фрейм;
  • connect-src и form-action — куда страница может отправлять данные;
  • report-to — куда отправляются отчёты о нарушениях.

По-русски CSP иногда называют политикой безопасности контента. Заголовок Content-Security-Policy-Report-Only позволяет проверить политику, ничего не блокируя. CSP стандартизирован W3C; актуальная версия — Level 3.

Почему CSP важна

CSP — дополнительный эшелон защиты от межсайтового скриптинга: даже если атакующему удалось внедрить тег script, браузер его не выполнит. Директива frame-ancestors предотвращает кликджекинг, а ограничение адресов для соединений мешает скиммерам формджекинга отправлять украденные данные карт на домены атакующих. Однако политика хороша ровно настолько, насколько хороши её правила: разрешение ‘unsafe-inline’ или целых CDN-доменов часто делает обход тривиальным.

Рекомендации

  • Предпочитать строгие политики на основе nonce или хешей длинным белым спискам доменов.
  • Избегать ‘unsafe-inline’ и ‘unsafe-eval’.
  • Сначала внедрять политику в режиме report-only и отслеживать отчёты о нарушениях.
  • Рассматривать CSP как дополнение к экранированию вывода и проверке входных данных, а не как их замену.
Синонимы:
Content-Security-Policy, политика безопасности контента, CSP-заголовок, CSP-политика