Know-How
XSS prevence — Cross-Site Scripting ochrana
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 <p>{text}</p>; // ✅ 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.