Cross-Site Scripting ermöglicht es einem Angreifer, JavaScript im Browser des Opfers auszuführen. Session-Diebstahl, Phishing — XSS ist die dritthäufigste Schwachstelle.
XSS-Typen¶
- Stored XSS: Skript in der Datenbank gespeichert
- Reflected XSS: Skript im URL-Parameter
- DOM-based XSS: JavaScript verarbeitet nicht vertrauenswürdige Daten
Output Encoding¶
// React — automatisches Escaping function Comment({ text }) { return
{text}
; // React escaped automatisch } // Python Jinja2 — Autoescape Standard in 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’;
HTML-Sanitization¶
// DOMPurify import DOMPurify from ‘dompurify’; const clean = DOMPurify.sanitize(dirty);
Python bleach¶
import bleach clean = bleach.clean(dirty, tags=[‘p’,’b’,’i’,’a’])
Wichtigste Erkenntnis¶
Output-Encoding + CSP + HttpOnly Cookies = zuverlässiger Schutz gegen XSS.