Menu della documentazione
Sicurezza dell'SDK
Sicurezza dell'SDK CookieHug: protezione da XSS, isolamento degli stili, protezione dal doppio caricamento, comportamento fail-open e minificazione.
Sicurezza
Protezione da XSS
Tutti i testi forniti dall'utente (titolo del banner, descrizione, etichette dei pulsanti, nomi e descrizioni dei cookie, traduzioni i18n) vengono ripuliti con escapeHtml() prima di essere inseriti in innerHTML. Questo impedisce l'iniezione di HTML o script tramite valori di configurazione o di traduzione. I testi assegnati con textContent (es. l'aggiornamento dell'etichetta di un pulsante al cambio di una casella) non vengono sottoposti a doppio escaping: textContent lo fa già in modo nativo.
Protezione dall'iniezione di stili
Tutti i valori CSS provenienti dalla configurazione (colori, raggio degli angoli, stili dei pulsanti) passano per sanitizeStyleValue(), che rimuove i caratteri pericolosi consentendo funzioni CSS sicure come rgb(), rgba(), hsl(), hsla() e calc(). I pattern pericolosi (url(), expression(), javascript:) sono bloccati del tutto. L'oggetto customStyles viene applicato tramite una whitelist di proprietà CSS sicure: fontFamily, fontSize, fontWeight, lineHeight, backgroundColor, borderRadius, border, boxShadow, padding, margin, width, maxWidth, minWidth, zIndex, opacity, color, letterSpacing.
Protezione dal doppio caricamento
L'SDK usa una protezione in due fasi contro la doppia inizializzazione: _booting: true viene impostato appena l'oggetto SDK viene creato, mentre _initialized: true solo dopo un'inizializzazione riuscita. Se l'inizializzazione fallisce in qualsiasi momento (tag script mancante, licenza non valida, errore di configurazione, eccezione a runtime), failBoot() riporta _booting a false permettendo un nuovo tentativo.
Protezione fail-open
Tutte le richieste API (verifica della licenza, configurazione, traduzioni, cookie) usano un timeout di 5 secondi tramite AbortController. Se il server CookieHug non è raggiungibile (errore di rete o timeout), l'SDK passa alla modalità fail-open: tutti gli script bloccati vengono sbloccati, il banner viene saltato e nella console viene registrato un avviso. In questo modo un disservizio del server CookieHug non rompe il sito del cliente. Un rifiuto esplicito della licenza (HTTP 403) continua a bloccare il banner: solo i guasti di rete attivano il fail-open. Tutti gli errori vengono registrati come avvisi [CookieHug] nella console del browser per facilitare il debug.
Versione minificata
Una build minificata (cookieconsent.min.js) è disponibile allo stesso URL di base. Sia /cookieconsent.js (completa) sia /cookieconsent.min.js (minificata) vengono servite con header CORS.