Cross-Site Scripting umožňuje útočníkovi spustit JavaScript v prohlížeči oběti. Krádež session, phishing — XSS je třetí nejčastější zranitelnost.
Typy XSS¶
- Stored XSS: Skript uložen v databázi
- Reflected XSS: Skript v URL parametru
- DOM-based XSS: JavaScript zpracuje nedůvěryhodná data
Output encoding¶
// React — automatický escaping function Comment({ text }) { return
{text}
; // ✅ React escapuje automaticky } // Python Jinja2 — autoescape default ve Flask env = Environment(autoescape=True)Content Security Policy¶
Content-Security-Policy: default-src ‘self’; script-src ‘self’ ‘nonce-abc123’; style-src ‘self’ ‘unsafe-inline’; frame-ancestors ‘none’;
Sanitizace HTML¶
// DOMPurify import DOMPurify from ‘dompurify’; const clean = DOMPurify.sanitize(dirty);
Python bleach¶
import bleach clean = bleach.clean(dirty, tags=[‘p’,’b’,’i’,’a’])
Klíčový takeaway¶
Encoding výstupu + CSP + HttpOnly cookies = spolehlivá ochrana proti XSS.