CSP
Категория: Сигурност
Какво е CSP?
Content Security Policy (CSP) е механизъм за сигурност, който помага за предотвратяване на XSS (Cross-Site Scripting), clickjacking и други атаки чрез инжектиране на код.
Как работи CSP?
CSP позволява на администраторите да дефинират от кои източници браузърът може да зарежда ресурси като:
- JavaScript
- CSS стилове
- Изображения
- Fonts
- Iframes
- Media файлове
Основни директиви
| Директива | Описание |
|---|---|
| default-src | Задава източник по подразбиране за всички ресурси |
| script-src | Дефинира разрешени източници за JavaScript |
| style-src | Дефинира разрешени източници за CSS стилове |
| img-src | Дефинира разрешени източници за изображения |
| connect-src | Ограничава източници за XMLHttpRequest, WebSocket |
| font-src | Дефинира разрешени източници за fonts |
| frame-src | Дефинира разрешени източници за iframes |
Примери за CSP политики
Пример 1: Разрешаване само на собствени ресурси
Content-Security-Policy: default-src 'self'
Пример 2: Разрешаване на конкретни външни домейни
Content-Security-Policy: default-src 'self'; script-src 'self' https://apis.google.com; img-src 'self' https://cdn.example.com;
Пример 3: Забрана на вграден JavaScript
Content-Security-Policy: script-src 'self'; object-src 'none'
Специални стойности
- 'none' - Забранява всички източници
- 'self' - Разрешава само от същия домейн
- 'unsafe-inline' - Разрешава вграден код (inline)
- 'unsafe-eval' - Разрешава eval() функция
- nonce-<value> - Разрешава конкретен inline скрипт
Режими на работа
- Enforce mode - Блокира нарушаващите правилата ресурси
- Report-only mode - Само докладва, но не блокира (Content-Security-Policy-Report-Only)
Предимства
- Ефективна защита срещу XSS атаки
- Контрол върху зарежданите ресурси
- Възможност за мониторинг и докладване
- Поддръжка от всички модерни браузъри