-
fix: A20 (partiel) — CSP nonce par requête, unsafe-inline sort de script-src (v7.7.0)
released this
2026-10-01 10:41:39 -04:00 | 113 commits to main since this release- ContentSecurityPolicyMiddleware : nonce aléatoire par requête dans la
ContextVarCSP_NONCE(posée avantcall_next→ visible des templates),
script-src 'self' 'unsafe-eval' 'nonce-…'— plus aucun script inline
sans nonce ne tourne (fin des XSS injectés en JS) - 38 tags
<script>des templates :nonce="{{ csp_nonce() }}"(passage
scripté, vérifié : 0 restant) ;LOCAL_LOGIN_HTML(constante de module) :
helper_with_nonce()au rendu ; collections.py : 3 scripts Python
(chart/form/map) noncés -
<meta name="htmx-config" content='{"inlineScriptNonce": …}'>dans base.html- htmx ré-injecte les <script> des réponses boostées avec le bon nonce
script-src-attr 'unsafe-inline': les 74 handlersonclick=inline
restent couverts (le nonce les aurait désactivés aussi)-
- chart.js (cdn.jsdelivr.net) et leaflet (unpkg) ajoutés à script-src/style-src
- vues chart/map déjà BLOQUÉES par la CSP depuis toujours
(commentaire ponytail: upgrade = vendoriser puis retirer les hôtes)
- reste d'A20 : unsafe-eval (Alpine x-data → @alpinejs/csp), externalisation
JS (A27), resserrer img-src/connect-src
test : test_csp_nonce_per_request (page base.html + page hors template,
nonce unique par requête)suite 1037/1037 ·
ruff check app testsOK · docs à jourDownloads
- ContentSecurityPolicyMiddleware : nonce aléatoire par requête dans la