Output encoding + Content Security Policy (CSP)
Контрол върху начина, по който untrusted data се рендерира в HTML/JS/URL contexts.
Какво е
Контрол върху начина, по който untrusted data се рендерира в HTML/JS/URL contexts.
Как работи
Context-aware encoding предотвратява превръщането на данни в executable markup; CSP ограничава допустимите script sources и execution patterns.
Как XSS се прекъсва
Ако user-controlled text се рендерира като text, browser-ът не трябва да го интерпретира като HTML/JavaScript. Output encoding прави точно това за съответния context.
CSP добавя втори слой: дори injection да съществува, browser policy може да ограничи откъде и как се изпълнява script.
Типична „CSP“, която не помага особено
Широки wildcard sources + unsafe-inline + unsafe-eval. Header има, security property почти няма.
Как да проверим
Използвайте CSP report-only при rollout, следете violations и постепенно преминете към nonce/hash-based policy.
Практическа имплементация
- Framework auto-escaping.
- CSP nonce/hash model.
- Trusted Types за high-risk frontends.
- Avoid dangerous DOM sinks.
Какво НЕ решава
Слаб CSP с unsafe-inline/широки wildcard-и може да е декоративен.
Предпазва най-силно от
- Clickjacking / UI Redressing · Web приложения и браузърни атаки
- DOM-based XSS · Web приложения и браузърни атаки
- Reflected Cross-Site Scripting (Reflected XSS) · Web приложения и браузърни атаки
- Stored Cross-Site Scripting (Stored XSS) · Web приложения и браузърни атаки