Dokumentationsmenü
Sicherheit des SDK
Sicherheit des CookieHug-SDK: Schutz vor XSS, Isolierung der Stile, Schutz vor doppeltem Laden, Fail-Open-Verhalten und Minifizierung.
Sicherheit
XSS-Schutz
Alle von Nutzern bereitgestellten Texte (Banner-Überschrift, Beschreibung, Schaltflächenbeschriftungen, Cookie-Namen/-Beschreibungen, i18n-Übersetzungen) werden mit escapeHtml() bereinigt, bevor sie in innerHTML eingefügt werden. Das verhindert HTML-/Skript-Injektion über Konfigurations- oder Übersetzungswerte. Texte, die über textContent gesetzt werden (z. B. Aktualisierung der Schaltflächenbeschriftung beim Umschalten eines Kontrollkästchens), werden nicht doppelt maskiert — textContent maskiert von sich aus.
Schutz vor Style-Injektion
Alle CSS-Werte aus der Konfiguration (Farben, Eckenradius, Schaltflächenstile) laufen durch sanitizeStyleValue(), das gefährliche Zeichen entfernt und sichere CSS-Funktionen wie rgb(), rgba(), hsl(), hsla() und calc() zulässt. Gefährliche Muster (url(), expression(), javascript:) werden vollständig blockiert. Das Objekt customStyles wird über eine Whitelist sicherer CSS-Eigenschaften angewendet: fontFamily, fontSize, fontWeight, lineHeight, backgroundColor, borderRadius, border, boxShadow, padding, margin, width, maxWidth, minWidth, zIndex, opacity, color, letterSpacing.
Schutz vor doppeltem Laden
Das SDK nutzt einen zweistufigen Schutz gegen doppelte Initialisierung: _booting: true wird sofort beim Erzeugen des SDK-Objekts gesetzt, _initialized: true erst nach erfolgreicher Initialisierung. Scheitert die Initialisierung an irgendeinem Punkt (fehlendes Script-Tag, ungültige Lizenz, Konfigurationsfehler, Laufzeitausnahme), setzt failBoot() das Flag _booting auf false zurück und erlaubt damit einen erneuten Versuch.
Fail-Open-Schutz
Alle API-Anfragen (Lizenzprüfung, Konfiguration, Übersetzungen, Cookies) laufen mit einem Timeout von 5 Sekunden (AbortController). Ist der CookieHug-Server nicht erreichbar (Netzwerkfehler oder Timeout), wechselt das SDK in den Fail-Open-Modus: Alle blockierten Skripte werden freigegeben, das Banner wird übersprungen und eine Warnung in der Konsole protokolliert. So kann eine Störung des CookieHug-Servers die Website des Kunden nicht lahmlegen. Eine ausdrückliche Lizenzablehnung (HTTP 403) blockiert das Banner weiterhin — nur Netzwerkfehler lösen Fail-Open aus. Alle Fehler werden zur einfachen Fehlersuche als [CookieHug]-Warnungen in der Browserkonsole protokolliert.
Minifizierte Version
Ein minifizierter Build (cookieconsent.min.js) steht unter derselben Basis-URL bereit. Sowohl /cookieconsent.js (vollständig) als auch /cookieconsent.min.js (minifiziert) werden mit CORS-Headern ausgeliefert.