Меню документації
Безпека SDK
Безпека SDK CookieHug: захист від XSS, ізоляція стилів, захист від подвійного завантаження, поведінка fail-open і мініфікація.
Безпека
Захист від XSS
Увесь текст, наданий користувачем (заголовок банера, опис, підписи кнопок, назви й описи cookie, переклади i18n), очищається функцією escapeHtml() перед вставленням у innerHTML. Це унеможливлює впровадження HTML чи скриптів через значення конфігурації або перекладу. Тексти, встановлені через textContent (напр. оновлення підпису кнопки під час перемикання позначки), не екрануються двічі — textContent робить це самостійно.
Захист від впровадження стилів
Усі значення CSS із конфігурації (кольори, радіус кутів, стилі кнопок) проходять через sanitizeStyleValue(), яка вилучає небезпечні символи й дозволяє безпечні функції CSS: rgb(), rgba(), hsl(), hsla() і calc(). Небезпечні шаблони (url(), expression(), javascript:) блокуються повністю. Об'єкт customStyles застосовується через білий список безпечних властивостей CSS: fontFamily, fontSize, fontWeight, lineHeight, backgroundColor, borderRadius, border, boxShadow, padding, margin, width, maxWidth, minWidth, zIndex, opacity, color, letterSpacing.
Захист від подвійного завантаження
SDK використовує двофазний запобіжник від подвійної ініціалізації: _booting: true встановлюється одразу під час створення об'єкта SDK, а _initialized: true — лише після успішної ініціалізації. Якщо ініціалізація зазнає невдачі на будь-якому етапі (немає тега скрипта, недійсна ліцензія, помилка конфігурації, виняток під час виконання), failBoot() повертає _booting у false, даючи змогу спробувати ще раз.
Захист fail-open
Усі запити до API (перевірка ліцензії, конфігурація, переклади, cookie) мають тайм-аут 5 секунд через AbortController. Якщо сервер CookieHug недоступний (мережева помилка або тайм-аут), SDK переходить у режим fail-open: усі заблоковані скрипти розблоковуються, банер пропускається, а в консоль виводиться попередження. Це не дає збою сервера CookieHug зламати сайт клієнта. Явна відмова в ліцензії (HTTP 403) і далі блокує банер — режим fail-open вмикають лише мережеві збої. Усі помилки записуються як попередження [CookieHug] у консолі браузера, щоб полегшити налагодження.
Мініфікована версія
Мініфікована збірка (cookieconsent.min.js) доступна за тією самою базовою адресою. І /cookieconsent.js (повна), і /cookieconsent.min.js (мініфікована) віддаються із заголовками CORS.