-
fix: A20 phase 2 — chart/leaflet vendorisés + connect-src fermé (v7.27.0)
released this
2026-10-01 22:49:48 -04:00 | 93 commits to main since this release- Vendorisation : chart.js 4.5.1 + leaflet 1.9 (leaflet.js, leaflet.css,
5 images marker/layer) vers static/js/vendor/ (déjà ignoré par eslint) ;
les 3 URL CDN des vues chart/map (collections.py) pointent en local →
la CSP n'a plus AUCUN hôte tiers dans script-src ni style-src. - connect-src fermé :
'self' ws://{host} wss://{host}— Host de la
requête (uvicorn rejette déjà les Host invalides) + filtrage des
caractères hors base URL. Lehttps:universel (canal d'exfil) et les
ws:/wss: tout-hôtes disparaissent. Grep négatif : 0 fetch cross-origin
côté front. - Google Fonts : entrées CSP mortes (0 référence dans le code) retirées
de style-src/font-src. - img-src https: CONSERVÉ volontairement (unfurls YouTube/Vimeo… + tuiles
OSM inénumérables) — ponytail: commenté dans security.py.
Tests : test_csp_no_cdn_and_vendor (CSP sans CDN/Google, connect-src
exact 'self' ws://testserver wss://testserver, 4 assets vendor 200,
source collections.py sans CDN) + test_view_chart_renders mis à jour
(chemin vendor). Suite complète 1090/1090 (1089 + 1).Reste A20 : unsafe-eval (Alpine x-data + htmx hx-on/hx-vars = eval)
→ build @alpinejs/csp + couverture E2E des vues d'abord (même logique
que la décision A39).suite 1090/1090 · ruff OK · docs à jour
Downloads
- Vendorisation : chart.js 4.5.1 + leaflet 1.9 (leaflet.js, leaflet.css,