Content Security Policy (CSP): защита от XSS атак

Безопасность · 19.04.2026
Content Security Policy (CSP): защита от XSS атак

Content Security Policy (CSP) — HTTP-заголовок, который сообщает браузеру, откуда разрешено загружать скрипты, стили, изображения и другие ресурсы. Это эффективная защита от XSS-атак и data injection.

Базовые директивы CSP

ДирективаКонтролирует
default-srcИсточник по умолчанию для всех ресурсов
script-srcJavaScript
style-srcCSS
img-srcИзображения
connect-srcAJAX, WebSocket, Fetch
font-srcШрифты
frame-srciframes
report-uriURL для отчётов о нарушениях

Примеры CSP политик

Строгая политика (для простых сайтов)

Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'

Для WordPress с Google Fonts и GTM

Content-Security-Policy: 
  default-src 'self';
  script-src 'self' 'unsafe-inline' https://www.googletagmanager.com https://www.google-analytics.com;
  style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
  font-src 'self' https://fonts.gstatic.com;
  img-src 'self' data: https://www.google-analytics.com;

Настройка через .htaccess

<IfModule mod_headers.c>
    Header always set Content-Security-Policy "        default-src 'self';         script-src 'self' 'unsafe-inline' 'unsafe-eval';         style-src 'self' 'unsafe-inline';         img-src 'self' data: https:;         font-src 'self' data:;         connect-src 'self';"
</IfModule>

Режим Report-Only для тестирования

# Не блокирует, только присылает отчёты
Content-Security-Policy-Report-Only: default-src 'self'; report-uri /csp-report.php
💡 Начинайте с Content-Security-Policy-Report-Only — собирайте нарушения неделю, затем переходите на строгий CSP без поломки сайта.
⚠️ 'unsafe-inline' и 'unsafe-eval' ослабляют защиту. Используйте nonce или hash для инлайн-скриптов в production.
← Назад в базу знаний Задать вопрос поддержке