Menu de la documentation
Sécurité du SDK
Sécurité du SDK CookieHug : protection contre les XSS, isolation des styles, protection contre le double chargement, comportement fail-open et minification.
Sécurité
Protection contre les XSS
Tous les textes fournis par l'utilisateur (titre de la bannière, description, libellés des boutons, noms et descriptions de cookies, traductions i18n) sont assainis avec escapeHtml() avant d'être insérés dans innerHTML. Cela empêche l'injection de HTML ou de scripts via des valeurs de configuration ou de traduction. Les textes affectés via textContent (p. ex. la mise à jour du libellé d'un bouton lors d'un changement de case) ne sont pas échappés deux fois — textContent s'en charge nativement.
Protection contre l'injection de styles
Toutes les valeurs CSS issues de la configuration (couleurs, rayon des angles, styles de boutons) passent par sanitizeStyleValue(), qui retire les caractères dangereux tout en autorisant les fonctions CSS sûres comme rgb(), rgba(), hsl(), hsla() et calc(). Les motifs dangereux (url(), expression(), javascript:) sont entièrement bloqués. L'objet customStyles est appliqué via une liste blanche de propriétés CSS sûres : fontFamily, fontSize, fontWeight, lineHeight, backgroundColor, borderRadius, border, boxShadow, padding, margin, width, maxWidth, minWidth, zIndex, opacity, color, letterSpacing.
Protection contre le double chargement
Le SDK utilise une garde en deux phases pour empêcher une double initialisation : _booting: true est posé dès la création de l'objet SDK, et _initialized: true seulement après une initialisation réussie. Si l'initialisation échoue à un moment quelconque (balise de script manquante, licence invalide, erreur de configuration, exception à l'exécution), failBoot() remet _booting à false, ce qui autorise une nouvelle tentative.
Protection fail-open
Toutes les requêtes API (vérification de licence, configuration, traductions, cookies) utilisent un délai d'attente de 5 secondes via AbortController. Si le serveur CookieHug est injoignable (erreur réseau ou délai dépassé), le SDK bascule en mode fail-open : tous les scripts bloqués sont libérés, la bannière est ignorée et un avertissement est écrit dans la console. Une panne du serveur CookieHug ne casse donc pas le site du client. Un refus explicite de licence (HTTP 403) continue de bloquer la bannière — seules les défaillances réseau déclenchent le fail-open. Toutes les erreurs sont consignées comme avertissements [CookieHug] dans la console du navigateur pour faciliter le débogage.
Version minifiée
Une version minifiée (cookieconsent.min.js) est disponible à la même URL de base. /cookieconsent.js (complète) comme /cookieconsent.min.js (minifiée) sont servies avec les en-têtes CORS.