Modelo de seguridad
Capas de protección
| Capa | Qué protege | Implementación |
|---|---|---|
| Token opaco | PII no viaja en URL | 10 chars base64url — sin datos internos |
| Origin validation | Comercio no puede usar token ajeno | merchantDomain validado contra Origin header del iframe |
| postMessage con target origin | XSS en página del comercio no intercepta resultado | Nunca se usa '*' como destino |
| HTTPS forzado | Man-in-the-middle | CloudFront + HSTS |
| Token expiry | Links viejos no reutilizables | linkExpiresAt (7 días) |
CSP frame-ancestors | Clickjacking | Solo dominios registrados en Merchant.allowedDomains |
Registrar dominios permitidos
Para usar el SDK en modo iframe, registra tu dominio en comercios.wepago.com → Configuración → Dominios permitidos.
El checkout valida que el Origin del iframe esté en esa lista. Si no está registrado, el pago no procede y se emite onError({ code: 'INVALID_TOKEN' }).
HTTPS obligatorio
Todos los recursos (sdk.js, iframe, APIs) solo funcionan en HTTPS. Peticiones desde http:// son rechazadas por CloudFront.
Reporte de vulnerabilidades
Envía un email a security@wepago.com con descripción detallada. No publiques vulnerabilidades en issues públicos.