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 атаки
  • Контрол върху зарежданите ресурси
  • Възможност за мониторинг и докладване
  • Поддръжка от всички модерни браузъри