feat(borne): CSP stricte same-origin + replis d'image CSP-safe #123
No reviewers
Labels
No labels
auto-merge
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
AcadeNice/corentin_wakdo!123
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/csp-borne"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Le vhost borne n'avait aucun en-tete Content-Security-Policy (seul l'admin en avait un). Ajout d'une CSP STRICTE sur le vhost kiosk : default-src 'self', script-src 'self' et style-src 'self' SANS 'unsafe-inline', + frame-ancestors 'none', object-src 'none', base-uri 'self', form-action 'self'. HSTS + nosniff en complement. La borne ne charge que du same-origin (scripts, styles, polices, images auto-heberges, aucun CDN), donc rien a assouplir. Pour que script-src 'self' n'ait rien a bloquer, les elements inline ont ete retires : - 4 handlers onerror="..." inline (cartes produit, bandeau categories, options produit, composeur menu) -> un unique listener delegue en capture (assets/js/img-fallback.js) ; les <img> declarent leur repli via data-fallback ("logo" ou "hide"). Le masquage passe par une classe, pas un style inline. - 1 style="width:80px" inline (spacer d'en-tete categories) -> classe .site-header__spacer. Verifie : 160 tests JS verts (dont 9 pour img-fallback) ; en-tete CSP servie et Apache OK sur une image reconstruite ; 0 violation CSP en console sur accueil / categories / produits (Playwright). Note deploiement : vhost.conf est COPYe dans l'image wakdo-web -> la CSP devient active seulement apres reconstruction + recreation du conteneur wakdo-web.