Integración
Entiende cómo funciona el SDK de Proteside en el checkout antes de instalarlo.
Proteside es un SDK client-side que se ejecuta en las páginas de pago de tu tienda. Mantiene el inventario de los scripts que se ejecutan en el navegador del cliente, detecta manipulaciones (skimming, cambio de clave Pix, secuestro de formularios, exfiltración de datos) y envía las evidencias al dashboard. Estas evidencias respaldan los controles de PCI DSS 4.0, requisitos 6.4.3 y 11.6.1.
Esta sección explica la instalación en el checkout y el comportamiento del SDK en el navegador. Para usar el dashboard en el día a día, consulta la Guía del usuario.
Cómo funciona
La instalación es un único bloque de código que pegas en el <head> del checkout. Internamente, tiene dos partes con
funciones distintas:
- Bootstrapper (inline y síncrono). Un
<script>pequeño, pegado directamente en el HTML, que debe ser el primer script del<head>. No hace ninguna solicitud de red. Instala puntos de observación enfetch,XMLHttpRequest,navigator.sendBeacon,addEventListener, el portapapeles, los service workers yWebSocket. También intercepta la inserción de nuevos<script src>, para bloquear los scripts prohibidos por tus reglas antes de que entren en la página. Todo lo que ocurre antes de que cargue el SDK queda guardado en memoria. - SDK
shield.js(asíncrono, servido por la CDN). Se carga desdehttps://cdn.proteside.com/v1/shield.jsconasync, sin bloquear el renderizado. Lee la clave del atributodata-key, obtiene la configuración de la tienda, inicia los módulos de detección y procesa lo que guardó el bootstrapper. - Configuración remota. Al iniciar, el SDK obtiene de
https://app.proteside.com/api/sdk/configlo que definiste en el dashboard: modo de protección, reglas, destinatarios confiables, orígenes de iframe esperados y ajustes finos. Si la respuesta no llega en 2 segundos, el SDK continúa con los valores predeterminados locales. - Envío de eventos. Las detecciones y la telemetría se envían en lotes a
https://app.proteside.com/api/sdk/events. El dashboard convierte los eventos relevantes en alertas y actualiza el inventario de Scripts y la Salud del SDK.
¿Por qué dos partes?
Un script cargado con async se ejecuta después de otros scripts de la página. Solo un fragmento inline y síncrono,
colocado antes de todos, garantiza que ningún script de terceros guarde referencias "limpias" de fetch o
addEventListener antes de que empiece la observación. Por eso nunca debes reemplazar el bootstrapper por un
<script src> externo.
Qué detecta Proteside
- Scripts nuevos o modificados después de que la página cargó, clasificados como propios, de terceros conocidos o desconocidos.
- Scripts bloqueados por tus reglas y contenedores de Google Tag Manager fuera de la lista permitida.
- Keyloggers: scripts que empiezan a escuchar teclas en campos de tarjeta u otros campos sensibles.
- Exfiltración: envío de número de tarjeta, CPF, CNPJ, correo electrónico o clave Pix a dominios no confiables,
mediante
fetch, XHR, beacon o imagen; conexionesWebSocketa destinos desconocidos. - Manipulación del pago: cambio del código Pix copia y pega, de la dirección cripto, del VPA de UPI, del banco del boleto o del monto; cambio del contenido copiado al portapapeles.
- Secuestro de formularios y de iframes: cambio del
actionde un formulario, cambio del iframe del proveedor de pagos, iframes inesperados y elementos superpuestos a los campos de pago. - Service workers no autorizados.
- Encabezados de seguridad (headers) de la página de pago (CSP, HSTS y otros), para detectar cambios.
La lista completa, con severidades, está en Eventos y detecciones.
Qué no recopila Proteside
El SDK está diseñado para no transportar datos de pago:
- nunca lee el valor escrito en los campos de formulario ni registra teclas;
- nunca envía número de tarjeta, CVV, clave Pix, código copia y pega, dirección cripto ni línea digitable;
- nunca envía el contenido copiado al portapapeles, el cuerpo de las solicitudes ni el código de los scripts (solo hashes, tamaños y nombres de patrones encontrados);
- no guarda cookies ni
localStorage.
Hay puntos que debes conocer, como el envío de la URL completa de la página. Consulta Privacidad y LGPD.
Del primer pageview al dashboard
Esto es lo que ocurre cuando un cliente abre el checkout con el snippet instalado:
- El navegador ejecuta el bootstrapper (menos de 1 ms) y sigue cargando la página con normalidad.
- El
shield.jsllega desde la CDN y obtiene la configuración de la tienda (hasta 2 s). - El SDK envía un
PAGEVIEWy empieza la calibración: durante 30 segundos (ajustable de 10 a 120 s), aprende los scripts, los listeners de campos sensibles y los dominios de red legítimos de esa página. - Al principio, el SDK envía el inventario de scripts de la página, con el hash del contenido cuando es legible. Los scripts que el dashboard todavía no conoce aparecen en Scripts con el estado Requiere revisión.
- Al terminar la calibración, cualquier script nuevo o comportamiento sospechoso se convierte en una detección.
- Los eventos se envían en lotes aproximadamente cada 5 segundos y cuando el cliente sale de la página. El indicador Proteside Activo en la parte superior del dashboard y la página Salud del SDK empiezan a reflejar el tráfico real.
Lo que ya estaba en la página durante la calibración no genera alertas de inyección en el navegador. Esos scripts entran en el inventario y la decisión (autorizar o bloquear) es tuya, en la página Scripts.
Próximos pasos
Instalación del snippet
Dónde obtener el snippet y dónde pegarlo.
Instalación por plataforma
HTML, Next.js, Nuxt, WordPress y otras plataformas.
Verificar la instalación
Confirma que el SDK está activo.
Configuración
Atributos, configuración remota y modos de protección.
Integridad de pagos y Pix
Destinatarios confiables y validación del pago.
API de JavaScript
Métodos de window.Proteside.
Eventos y detecciones
Tipos de evento, severidad y alertas.
CSP y headers
Content Security Policy y su relación con PCI DSS.
Privacidad y LGPD
Qué se recopila y qué nunca se recopila.
Rendimiento y compatibilidad
Tamaño, carga y navegadores.
Sello Proteside
Sello estático opcional para el checkout.
Solución de problemas
Errores comunes y cómo resolverlos.