Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Content Security Policy (CSP)
CSP — это механизм безопасности браузера, который помогает защитить веб-приложение от различных типов атак, таких как XSS (Cross-Site Scripting), clickjacking и инъекция вредоносного кода. CSP работает путём установления набора правил, которые определяют, какие ресурсы (скрипты, стили, изображения и т.д.) разрешено загружать и выполнять на странице.
Как работает CSP
CSP реализуется через HTTP-заголовок Content-Security-Policy, который отправляется сервером вместе с ответом. Браузер парсит этот заголовок и применяет указанные ограничения при загрузке ресурсов.
Основные директивы CSP
default-src— базовая политика для всех типов контентаscript-src— управление загрузкой и выполнением скриптовstyle-src— управление загрузкой стилейimg-src— управление загрузкой изображенийfont-src— управление загрузкой шрифтовconnect-src— управление соединениями (fetch, XMLHttpRequest, WebSocket)frame-ancestors— контроль, какие страницы могут встраивать текущую страницу в iframe
Пример использования
app.use((req, res, next) => {
res.setHeader(
"Content-Security-Policy",
"default-src 'self'; script-src 'self' 'unsafe-inline' https://trusted-cdn.com"
);
next();
});
Значения директив
'self'— разрешить только ресурсы с того же источника'unsafe-inline'— разрешить встроенные скрипты/стили (рискованно)'unsafe-eval'— разрешить eval() и похожие функцииhttps://trusted-domain.com— разрешить ресурсы только с конкретного домена*— разрешить ресурсы с любых источников'none'— запретить загрузку ресурсов этого типа
Практические примеры
const strictPolicy = "default-src 'none'; script-src 'self'; style-src 'self'";
const modestPolicy = "default-src 'self'; script-src 'self' https://cdnjs.cloudflare.com";
const devPolicy = "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'";
Режимы CSP
Content-Security-Policy— строгий режим, браузер блокирует нарушенияContent-Security-Policy-Report-Only— режим отчётности, браузер не блокирует
Преимущества
- Защита от XSS-атак
- Контроль над источниками ресурсов
- Мониторинг и логирование нарушений
- Снижение поверхности атаки
Рекомендации
- Начните с режима Report-Only для анализа
- Постепенно ужесточайте политику
- Используйте nonce или hash вместо 'unsafe-inline'
- Регулярно проверяйте логи нарушений
- Документируйте все исключения