AmauriC / tarteaucitron.js

RGPD friendly cookie manager
https://tarteaucitron.io/
MIT License
916 stars 369 forks source link

Utiliser l'attribut crossorigin #1275

Open maxime-carbonneau opened 2 weeks ago

maxime-carbonneau commented 2 weeks ago

Quand TAC est chargé via un CDN, il y a des enjeux de CORS.

Est-ce que c'est possible d'ajouter l'attribut crossorigin=anonymous pour les addInternalScript et pour link_element dans Step 1: load css

AmauriC commented 2 weeks ago

Je ne suis pas fan d'ajouter des attributs pour contrer une mesure de sécurité.

Si la politique CORS d'un site est strict, il faut ajouter dedans le CDN et les différents domaines.

maxime-carbonneau commented 2 weeks ago

Je comprends, moi non plus je ne suis pas fan.

En même temps, ce n'est pas l'interprétation que je fais de l'attribut. D'après ma compréhension, comme le serveur va retourner l'en-tête Access-Control-Allow-Origin: *, quand mon browser demande le fichier https://cdn.jsdelivr.net/npm/tarteaucitronjs@1.19.0/css/tarteaucitron.min.css, l'attribut permet de confirmer qu'il n'y aura pas d'échange de cookie.

Par contre, peut-être que c'est seulement pour le tag link que c'est pertinent.

Voici le en-tête que retourne cdn.jsdelivr.net Access-Control-Allow-Origin: Access-Control-Expose-Headers: Cross-Origin-Resource-Policy: cross-origin

AmauriC commented 2 weeks ago

Ok. Pour bien comprendre, actuellement les fichiers CDN ne sont pas chargés par le navigateur? En ajoutant crossorigin=anonymous sur la balise tarteaucitron, idem?

maxime-carbonneau commented 2 weeks ago

Les fichiers sont bien chargés par le navigateur. Cependant, la consultation des règles CSS en javascript document.styleSheets pour TAC ne permet pas la consultation de clés cssRules et/ou rules. Cela génère l'erreur « SecurityError: Not allowed to access cross-origin stylesheet ».

C'est en cherchant à comprendre l'origine de l'erreur que j'ai découvert l'attribut crossorigin.

AmauriC commented 2 weeks ago

J'aurai aussi appris quelque chose 😃 Techniquement c'est facile à ajouter mais j'aimerai bien avoir l'avis d'utilisateur calé en CORS pour valider ou non le changement.