Problème de CSP #642
Labels
No Label
AdminAPI
Bug
Check AWS
CI
Correctness
Critical
Documentation
Ideas
Improvement
Low priority
Newcomer
Performance
S3 Compatibility
Testing
Usability
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Deuxfleurs/garage#642
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
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?
Sur https://example.osuny.org/fr/, nous avons un moteur de recherche qui tourne avec https://pagefind.app/.
Malheureusement, il ne tourne pas sur Garage, à cause de la Content-Security-Policy, si notre analyse est bonne.
Quand on clique sur la recherche, on charge le fichier
pagefind/pagefind.js
, qui va ensuite charger des fichiers wasm. Malheureusement, ce fichier est servi avec la Content-Secure-Policy "default-src https: 'unsafe-inline'; object-src 'none'".Cela empêche le chargement des wasm, qui auraient besoin d'une policy 'unsafe-eval', ou bien de n'avoir pas de CSP.
Sur le site https://publications.arnaudlevy.com/, hébergé sur Netlify, tout fonctionne. Voilà les headers du fichier pagefind.js.
peut-on assouplir le CSP en ajoutant 'unsafe-eval' ?
Note: this issue was about a service provided by Deuxfleurs, which include a specific deployment of Garage. It's not directly about Garage as a software, that's why we are discussing in french.
J'ai supprimé les CSP injectés via HTTP, ça nous demande trop de support à ajuster en fonction de tous les cas d'usage.
Pour la suite, il va falloir que chacun mette ses CSP dans ses en-têtes HTML meta. C'est déjà le cas pour example.osuny.org, et d'ailleurs maintenant PageFind fonctionne.
Pour les futures références :
wasm-src
ouscript-src
. Une discussion est en cours chez Google/Chromium depuis 2019 mais ils ne se sont toujours pas mis d'accordwasm-unsafe-eval
est une solution de secours séduisante, implémentée par Chrome, Firefox, Edge, elle n'est pas supportée par Safariunsafe-eval
est donc la solution de compatibilité, qui, à mon avis, annule beaucoup de l'intéret des CSPD'autres problèmes liés au CSP :
Mon opinion : les CSP sont une fonctionnalité de sécurité bancale, il y a d'ailleurs plein de billets qui documentent leur edge cases, leur différences subtiles de fonctionnement entre navigateurs, etc. En plus elles sont inutiles pour un hébergement statique à la Garage car elles servent seulement à protéger des injections, ce qui ne peut pas arriver. Et enfin on peut en mettre dans le HTML. Je pense donc que Deuxfleurs devrait vraiment se mettre en retrait de ça, et laisser le soin a ses usager-es qui le souhaitent de les mettre dans leur HTML.
Note : je pense que le dépot Deuxfleurs/guichet sera plus indiqué pour tracker les bugs sur le service de site web de Deuxfleurs. Ou Deuxfleurs/nixcfg. Ou un dépôt dédié, je ne sais pas encore.