Menú de documentación

Seguridad del SDK

Seguridad del SDK de CookieHug: protección contra XSS, aislamiento de estilos, protección frente a doble carga, comportamiento fail-open y minificación.

Seguridad

Protección contra XSS

Todo el texto proporcionado por el usuario (título del banner, descripción, etiquetas de botones, nombres y descripciones de cookies, traducciones i18n) se depura con escapeHtml() antes de insertarse en innerHTML. Esto impide la inyección de HTML o de scripts a través de valores de configuración o de traducción. Los textos asignados con textContent (p. ej. la actualización de la etiqueta de un botón al marcar una casilla) no se escapan dos veces: textContent ya lo hace de forma nativa.

Protección contra inyección de estilos

Todos los valores CSS de la configuración (colores, radio de bordes, estilos de botones) pasan por sanitizeStyleValue(), que elimina los caracteres peligrosos y permite funciones CSS seguras como rgb(), rgba(), hsl(), hsla() y calc(). Los patrones peligrosos (url(), expression(), javascript:) se bloquean por completo. El objeto customStyles se aplica mediante una lista blanca de propiedades CSS seguras: fontFamily, fontSize, fontWeight, lineHeight, backgroundColor, borderRadius, border, boxShadow, padding, margin, width, maxWidth, minWidth, zIndex, opacity, color, letterSpacing.

Protección frente a doble carga

El SDK usa una protección en dos fases para evitar la doble inicialización: _booting: true se fija en cuanto se crea el objeto del SDK, y _initialized: true solo tras una inicialización correcta. Si la inicialización falla en cualquier punto (falta la etiqueta de script, licencia no válida, error de configuración, excepción en tiempo de ejecución), failBoot() devuelve _booting a false y permite un nuevo intento.

Protección fail-open

Todas las peticiones a la API (verificación de licencia, configuración, traducciones, cookies) usan un tiempo de espera de 5 segundos mediante AbortController. Si el servidor de CookieHug no está accesible (error de red o tiempo agotado), el SDK entra en modo fail-open: se desbloquean todos los scripts, se omite el banner y se registra un aviso en la consola. Así, una caída del servidor de CookieHug no rompe el sitio del cliente. Un rechazo explícito de la licencia (HTTP 403) sigue bloqueando el banner: solo los fallos de red activan el fail-open. Todos los errores se registran como avisos [CookieHug] en la consola del navegador para facilitar la depuración.

Versión minificada

Hay disponible una compilación minificada (cookieconsent.min.js) en la misma URL base. Tanto /cookieconsent.js (completa) como /cookieconsent.min.js (minificada) se sirven con cabeceras CORS.