Proteside Docs

Configuración

Atributos del snippet, configuración remota, modos monitoreo y bloqueo, pausa y canales.

Casi toda la configuración del SDK se hace en el dashboard y llega al navegador a través de la configuración remota. El snippet solo lleva la clave de la tienda y, cuando las hay, las reglas inline. Esta página muestra de dónde viene cada ajuste y qué hace realmente en el checkout.

Atributos del snippet

El shield.js lee los atributos data-* de su propia etiqueta <script>:

Propiedad

Tipo

No existen otros atributos. El modo de protección y el canal no se definen por atributo: el modo viene del dashboard y el canal es la propia URL del shield.js. El atributo data-safe-url, de versiones antiguas del snippet, se ignora.

Configuración remota

Al iniciar, el SDK obtiene la configuración de la tienda en https://app.proteside.com/api/sdk/config. Cuando las capas no coinciden, vale este orden de prioridad:

  1. Configuración remota (lo que está guardado en el dashboard);
  2. Snippet (atributos data-* y reglas inline window.__PROTE_INLINE__);
  3. Valores predeterminados del SDK.
ComportamientoDetalle
Tiempo límite2 segundos. Si la respuesta no llega, el SDK continúa con el snippet y los valores predeterminados.
FallaUna clave inválida, un error o la falta de red no rompen la página: el SDK continúa con los valores predeterminados locales.
Inicio de las deteccionesLos módulos de detección solo empiezan después de la respuesta (o del tiempo límite). Hasta entonces, el bootstrapper guarda lo que ocurre y el SDK lo procesa después.
CachéLa respuesta puede quedar en caché durante 60 segundos en el navegador y en la CDN.

Los cambios pueden tardar más de 60 segundos

El dashboard dice que los cambios llegan al SDK en hasta 60 segundos. La CDN puede seguir sirviendo la respuesta anterior durante algunos minutos más mientras obtiene la nueva, sobre todo en tiendas con poco tráfico. Para probar un cambio, espera algunos minutos y compruébalo con Proteside.getStatus().

Qué viene del dashboard

La mayor parte está en Ajustes → Protección del pago:

Pantalla Protección del pago con destinatarios confiables, modo de protección, modo desarrollador, canal de release, listas de orígenes, métodos de pago, campos sensibles y ajustes avanzados
Ajuste en el dashboardEfecto en el SDK
Destinatarios confiablesHashes de las claves Pix, direcciones cripto, VPAs de UPI y bancos de boleto de la tienda. Consulta Integridad de pagos y Pix.
Modo de protecciónMonitorear o Bloquear. Consulta más abajo.
Modo desarrolladorPausa el SDK. Consulta Pausa y modo desarrollador.
Canal de release del SDKSolo informativo para el SDK. El canal efectivo es la URL pegada en el snippet. Consulta Canales.
Orígenes de iframe esperadosHosts de los iframes de pago legítimos. Con la lista completa, el SDK alerta sobre iframes de proveedores que no están en ella, iframes superpuestos a los esperados y campos de tarjeta editables fuera del iframe.
Contenedores GTM permitidosCon la lista completa, los contenedores de Google Tag Manager que no están en ella se bloquean. Consulta el aviso de abajo.
Service workers permitidosCon la lista completa, los service workers que no están en ella se reportan y, en modo Bloquear, se eliminan.
Métodos de pagoMétodos que se muestran como monitoreados. No desactiva la detección. Consulta Métodos de pago.
Campos sensiblesSelectores de los campos vigilados contra keyloggers y superposiciones.
Calibración (segundos)Tiempo de aprendizaje después de la carga (10 a 120 s, predeterminado 30).
Verificación de overlay (ms)Intervalo entre verificaciones de elementos superpuestos (mínimo 500, predeterminado 2000).
Orden de instalaciónAvisar (alerta) envía INSTALLATION_ORDER_WARNING; Silenciar no envía el evento, pero installationOrderValid sigue en false.

Las reglas de Reglas (bloquear o permitir por Dominio o URL del script) también llegan en la configuración remota. Las reglas inactivas no se envían. Las listas vacías significan "sin restricción".

Las reglas por hash de contenido no se aplican en el navegador

La pantalla de Reglas ofrece el objetivo Hash de contenido, pero el SDK ignora esas reglas: no bloquean ningún script en el checkout. Para impedir un script, usa una regla por Dominio o URL del script.

Campos sensibles

De forma predeterminada, el SDK vigila estos selectores:

#card-number, #card-cvv, #card-expiry, #card-name,
[data-proteside-sensitive],
input[autocomplete="cc-number"],
input[autocomplete="cc-csc"]

Para incluir un campo propio sin tocar el dashboard, márcalo con el atributo data-proteside-sensitive:

<input id="cpf" name="cpf" data-proteside-sensitive />

Si desactivas Usar la lista predeterminada de Proteside e ingresas una lista propia, esta reemplaza la predeterminada. Incluye [data-proteside-sensitive] en tu lista si quieres que el atributo siga funcionando.

Modo monitoreo y modo bloqueo

El modo se elige en Protección del pago → Modo de protección y llega al SDK a través de la configuración remota.

Qué ocurre en cualquier modo

Las reglas y la lista de GTM también bloquean en modo Monitorear

La pantalla describe el modo Monitorear como "sin interferir en la página" y dice que los contenedores fuera de la lista se bloquean "en modo Bloquear". En el navegador, las reglas de bloqueo (por dominio o URL) y la lista de Contenedores GTM permitidos bloquean scripts en ambos modos. Si solo quieres observar, no crees reglas de bloqueo y deja vacía la lista de GTM.

  • Un script insertado por JavaScript que coincide con una regla de bloqueo nunca llega a entrar en la página. El SDK envía SCRIPT_BLOCKED.
  • Con la lista de GTM completa, se bloquean googletagmanager.com/gtm.js y googletagmanager.com/gtag/js con un ID que no está en la lista. El SDK envía GTM_CONTAINER_BLOCKED.
  • Una regla Permitir que coincida con el script anula las reglas de bloqueo.
  • cdn.proteside.com y app.proteside.com nunca se bloquean.

La lista de GTM también bloquea GA4 y Google Ads

La lista solo acepta IDs con el formato GTM-XXXXXXX, pero el bloqueo también aplica a gtag/js. Con la lista completa, cualquier etiqueta de Google Analytics 4 (G-…) o de Google Ads (AW-…) cargada por JavaScript, incluso por el propio GTM, se bloquea, y no hay forma de incluir esos IDs en la lista. Antes de activar la lista, confirma si la tienda usa GA4 o Google Ads cargados de esa forma.

Qué cambia en modo Bloquear

Además de alertar, el SDK intenta neutralizar la manipulación:

DetecciónAcción en modo Bloquear
SCRIPT_INJECTION de un script desconocidoQuita la etiqueta del script después de detectarlo.
FORM_ACTION_HIJACKRestaura el action original del formulario.
OVERLAY_DETECTEDQuita el elemento superpuesto.
PIX_TAMPERED, UPI_TAMPERED, QR_TAMPERED, BOLETO_TAMPERED, CRYPTO_ADDRESS_SWAP (texto modificado)Reescribe el texto con el valor original capturado.
Destinatario fuera de la lista de confiablesReemplaza el texto leído por ⚠︎ y marca el elemento con data-proteside-blocked="untrusted_recipient".
CLIPBOARD_HIJACKVuelve a escribir el valor original en el portapapeles.
SERVICE_WORKER_BLOCKEDElimina el registro del service worker.

Estas detecciones solo alertan, en cualquier modo: EXFILTRATION_ATTEMPT, KEYLOGGER_DETECTED, WEBSOCKET_EXFILTRATION, IFRAME_REPLACED, IFRAME_UNEXPECTED, CARD_FIELD_OUTSIDE_VAULT, AMOUNT_TAMPERED, SCRIPT_MODIFIED y FIELD_ACCESS.

Quitar un script no deshace lo que ya ejecutó

Cuando un script ya entró en la página, quitar la etiqueta no cancela su ejecución. Solo el bloqueo antes de la inserción, que hace el bootstrapper con las reglas, impide realmente que el script se ejecute. Por eso, para un script no deseado, crea una regla de bloqueo en lugar de depender solo del modo Bloquear.

En modo Bloquear, una regla incorrecta puede romper el checkout. Empieza en Monitorear, revisa las alertas durante algunas semanas y prueba el modo Bloquear en una página de poco tráfico antes de activarlo en toda la tienda.

Pausa y modo desarrollador

El SDK queda en pausa cuando:

  • el Modo desarrollador está activado en Protección del pago;
  • la suscripción no está vigente o la tienda no está activa.

En pausa, el SDK envía un único PAGEVIEW marcado como en pausa en cada carga de página (la pantalla habla de "1 pageview por sesión") y no inicia ningún módulo de detección. Proteside.getStatus().paused queda en true y la Salud del SDK muestra SDK en pausa (modo desarrollador).

Las reglas inline siguen vigentes en modo desarrollador

El bootstrapper aplica las reglas guardadas en el snippet (window.__PROTE_INLINE__) antes de saber que la tienda está en pausa. Con el modo desarrollador activado, los scripts que coinciden con esas reglas siguen bloqueados, pero sin ningún evento en el dashboard. Si necesitas desactivar un bloqueo durante la integración, elimina la regla y vuelve a pegar el snippet.

También existe la pausa local, que la propia página activa con Proteside.pause(). Solo aplica a esa carga.

Canales

El canal de release (stable o latest) lo define la URL del shield.js en el snippet. Consulta Canales stable y latest.

Próximos pasos

En esta página