Saltar al contenido

CLI local. RGPD, ePrivacy, Schrems II.

Audita tu sitio web antes de que intervengan los reguladores europeos.

KlarAudit lanza Chromium headless en tu máquina, registra las peticiones del first paint antes de cualquier clic de consentimiento y puntúa la página según TTDSG / TDDDG § 25, RGPD art. 6 y art. 83, LG München 3 O 17493/20 y Schrems II. Sin cuenta en la nube. Sin telemetría. Código de salida 1 ante hallazgos CRITICAL o HIGH.

npx klaraudit scan https://example.com

Traza de ejemplo

Lo que imprime la CLI en un first paint no conforme

KlarAudit no pulsa Aceptar. Observa la carga en reposo, resuelve las IP remotas con una base GeoIP local y puntúa la página. La traza corresponde a una ejecución NON_COMPLIANT representativa.

klaraudit scan https://shop.example.de --ci

$ Scanning https://shop.example.de timeout=15000ms

intercept network (pre-consent, no click)

targets: cookies, scripts, fonts, banner DOM, /impressum, /datenschutz

FAIL googletagmanager.com/gtag/js rastreador antes del consentimiento

FAIL fonts.googleapis.com 142.250.185.196 (US) transferencia sin anotar

FAIL falta Rechazar / Ablehnen en la primera capa

OK /impressum 200 /datenschutz 200

Score 45 / 100

Status NON_COMPLIANT (umbral < 60)

Gravedad Categoría Hallazgo Delta Remediación
CRITICAL TRACKING_CONSENT GTM se disparó antes del consentimiento (googletagmanager.com) -30 Bloquear GTM/gtag hasta un opt-in explícito.
HIGH CROSS_BORDER_TRANSFER fonts.googleapis.com resolvió a la IP estadounidense 142.250.185.196 -15 Alojar las fuentes en origen. No cargar Google Fonts en el first paint.
MEDIUM BANNER_DARK_PATTERN No hay Rechazar / Ablehnen de igual prominencia en la primera capa -10 Colocar Ablehnen junto a Aceptar con el mismo peso visual.

CI gate: FAIL el estado es NON_COMPLIANT; hay violaciones CRITICAL o HIGH.

exit 1

Manifiesto de inspección

Controles de first paint, en orden de inspección

Catálogo secuencial de las comprobaciones que puede disparar un escaneo automatizado alemán o europeo antes de cualquier interacción. Cada fila enfrenta la vista del regulador externo con el hallazgo local de la CLI.

Document
KLAR-IMF-01
Scope
Alcance: first paint previo al consentimiento
Engine
Motor: Playwright Chromium (local)
  1. 01

    Intercepción de red previa al consentimiento

    CRITICAL / TRACKING_CONSENT

    Detecta GTM, Meta Pixel y otros rastreadores conocidos que se disparan antes de que el usuario pulse consentimiento. El runner engancha las peticiones de página antes de la navegación y nunca pulsa Aceptar.

    REF: TTDSG / TDDDG § 25, RGPD art. 6

    Los rastreadores de requerimientos registran googletagmanager.com y facebook.net en el first paint. La IP del visitante ya está en un registro de un encargado estadounidense. El almacenamiento o acceso en el equipo terminal carece de base en el § 25 TDDDG.

    TRACKING_CONSENT  CRITICAL  -30
    GTM se disparó antes del consentimiento (googletagmanager.com)
  2. 02

    Fugas dinámicas de IP transfronterizas

    HIGH / CROSS_BORDER_TRANSFER

    Detecta llamadas a activos estadounidenses como Google Fonts y saltos CDN no verificados. Las IP remotas se clasifican con una base GeoIP sin conexión. El escáner no llama a ninguna API de lookup en la nube.

    REF: LG München 3 O 17493/20, Schrems II

    El LG München I consideró que cargar Google Fonts desde servidores estadounidenses sin consentimiento transmite ilícitamente la IP del visitante. Schrems II invalidó el Privacy Shield. Las transferencias a EE. UU. sin anotar siguen siendo un riesgo de multa del art. 83 RGPD.

    CROSS_BORDER_TRANSFER  HIGH  -15
    fonts.googleapis.com -> 142.250.185.196 (US)
    Sin anotación DPF/SCC en la ruta de la petición
  3. 03

    Capa de consentimiento y patrones oscuros

    MEDIUM / BANNER_DARK_PATTERN

    Valida el DOM de la primera capa en busca de una acción de rechazo con la misma prominencia que aceptar. Los caminos solo de ajustes y los controles de rechazo más débiles fallan esta comprobación.

    REF: Directrices del CEPD 03/2022

    Las Directrices del CEPD 03/2022 exigen una elección real. Un Aceptar destacado junto a un enlace gris de ajustes se trata como patrón oscuro. Un Ablehnen de igual prominencia es la referencia alemana.

    BANNER_DARK_PATTERN  MEDIUM  -10
    No hay Rechazar / Ablehnen de igual prominencia en la primera capa
  4. 04

    Puerta de pipeline local y auditoría sin conexión

    GATE / CI_GATE

    Se ejecuta por completo en tu runner o CLI. Cero dependencias en la nube. Códigos de salida deterministas para CI/CD. La captura de red, las heurísticas DOM y GeoIP permanecen en la máquina que lanzó el escaneo.

    REF: Contrato de salida CI, RGPD art. 32

    Los escáneres externos no esperan a un panel SaaS. Puntúan el sitio tal como se entrega. Un merge que introduce una fuente estadounidense o un píxel pre-consentimiento es visible en el siguiente rastreo.

    --ci  exit 1
    estado NON_COMPLIANT, o cualquier hallazgo CRITICAL/HIGH
    JSON en stdout, sin telemetría saliente

Puntuación

Deducciones heurísticas y bandas de estado

Puntuación base 100. Las deducciones se aplican por incidente y el resultado se recorta a 0. Las deducciones CRITICAL tienen un tope de -60. Son heurísticas técnicas, no un dictamen jurídico.

Categoría Gravedad Deducción Criterios
Consentimiento de rastreo CRITICAL -30 / incidente (CRITICAL total limitado a -60) GTM, Google Analytics, Meta Pixel, DoubleClick, Hotjar, TikTok, Clarity o cookies de rastreo no esenciales se disparan durante la carga sin interacción. Un banner de primera capa ausente con actividad de terceros también es CRITICAL.
Transferencia transfronteriza HIGH -15 / activo no UE único Fuentes, scripts u hojas de estilo resueltos fuera de la UE/EEE mediante geoip-lite local. Google Fonts dinámicas (fonts.googleapis.com / fonts.gstatic.com) se marcan siempre. Una IP hacia Google sin consentimiento se trata como fuga Schrems II (LG München 3 O 17493/20).
Patrones oscuros del banner MEDIUM -10 / incidente Existe una IU de consentimiento, pero Rechazar / Ablehnen (o equivalente) falta o es más débil que Aceptar en la primera capa. Los caminos solo de ajustes o enlaces grises fallan las Directrices del CEPD 03/2022.
Páginas obligatorias LOW -5 / página ausente /impressum o /imprint y /datenschutz o /privacy deben devolver HTTP 200. Requisito habitual de revelación comercial en Alemania y la UE.

>= 85

COMPLIANT

El umbral heurístico del first paint se cumple.

60-84

WARNING

Siguen existiendo problemas. No es una entrega limpia al cliente.

< 60

NON_COMPLIANT

--ci termina con 1. Corregir antes del lanzamiento.

Licencia

CLI de código abierto y licencia Agency

El escáner se puede ejecutar localmente sin coste. La licencia Agency añade informes PDF A4 con marca y derechos de entrega al cliente. Pago a través de Lemon Squeezy.

Parámetro CLI de código abierto Gratis Licencia Agency 79 USD, pago único
Precio 0 USD 79 USD, pago único
Licencia MIT Licencia Agency (entrega al cliente)
Entorno de ejecución npx o Docker local npx o Docker local
Salida Terminal, JSON Terminal, JSON, PDF A4 con marca
Puerta CI/CD códigos de salida --ci códigos de salida --ci
Dependencia de nube Ninguna Ninguna
Entrega al cliente Sin derechos de PDF con marca PDF A4 con marca y derechos de entrega

La marca del PDF y la entrega al cliente requieren la licencia Agency. La ejecución del escaneo permanece en su máquina en ambos niveles.