Menu dokumentacji
Bezpieczeństwo SDK
Bezpieczeństwo SDK CookieHug: ochrona przed XSS, izolacja stylów, deduplikacja, zachowanie fail-open i minifikacja.
Bezpieczeństwo
Ochrona przed XSS
Wszystkie teksty podawane przez użytkownika (nagłówek bannera, opis, etykiety przycisków, nazwy/opisy cookies, tłumaczenia i18n) są sanityzowane funkcją escapeHtml() przed wstawieniem do innerHTML. Zapobiega to wstrzyknięciu HTML/skryptów przez konfigurację lub wartości tłumaczeń. Wartości przypisywane przez textContent (np. aktualizacja etykiety przycisku po zmianie checkboxa) nie są podwójnie escapowane — textContent obsługuje to natywnie.
Ochrona przed style injection
Wszystkie wartości CSS z konfiguracji (kolory, border-radius, style przycisków) przechodzą przez sanitizeStyleValue(), która usuwa niebezpieczne znaki, jednocześnie pozwalając na bezpieczne funkcje CSS: rgb(), rgba(), hsl(), hsla() i calc(). Niebezpieczne wzorce (url(), expression(), javascript:) są blokowane całkowicie. Obiekt customStyles jest aplikowany przez whitelistę bezpiecznych właściwości CSS: fontFamily, fontSize, fontWeight, lineHeight, backgroundColor, borderRadius, border, boxShadow, padding, margin, width, maxWidth, minWidth, zIndex, opacity, color, letterSpacing.
Zabezpieczenie przed podwójnym załadowaniem
SDK używa dwufazowego guardu: _booting: true ustawiane jest natychmiast przy tworzeniu obiektu SDK, a _initialized: true dopiero po pełnej inicjalizacji. Jeśli inicjalizacja nie powiedzie się w dowolnym momencie (brak tagu script, nieprawidłowa licencja, błąd konfiguracji, wyjątek runtime), _booting jest resetowane do false przez failBoot(), umożliwiając ponowną próbę.
Ochrona fail-open
Wszystkie żądania API (weryfikacja licencji, konfiguracja, tłumaczenia, cookies) mają timeout 5 sekund (AbortController). Jeśli serwer CookieHug jest nieosiągalny (błąd sieci lub timeout), SDK przechodzi w tryb fail-open: wszystkie zablokowane skrypty są odblokowywane, banner jest pomijany, a ostrzeżenie jest logowane w konsoli. Zapobiega to uszkodzeniu strony klienta przez awarię serwera CookieHug. Jawne odrzucenie licencji (HTTP 403) nadal blokuje banner — tylko awarie sieciowe uruchamiają fail-open. Wszystkie błędy są logowane jako ostrzeżenia [CookieHug] w konsoli przeglądarki dla łatwego debugowania.
Wersja zminifikowana
Zminifikowana wersja (cookieconsent.min.js) jest dostępna pod tym samym adresem bazowym. Zarówno /cookieconsent.js (pełna) jak i /cookieconsent.min.js (zminifikowana) są serwowane z nagłówkami CORS.