Datos de Pago Almacenados Localmente
Guardar números de tarjeta completos, CVVs o PANs en localStorage, sessionStorage o tu propia base de datos viola PCI DSS y crea una responsabilidad masiva.
Cómo Funciona
PCI DSS (Estándar de Seguridad de Datos de la Industria de Tarjetas de Pago) prohíbe guardar CVVs después de la autorización e impone requisitos estrictos sobre el almacenamiento de números de tarjeta. Guardar datos de tarjeta en localStorage es especialmente peligroso — cualquier JavaScript en tu página (incluyendo scripts de terceros) puede leerlo.
// MAL: guardando datos de tarjeta en almacenamiento del cliente o tu propia DB
localStorage.setItem('tarjetaGuardada', JSON.stringify({
numero: '4111111111111111',
cvv: '123',
expiracion: '12/25'
}));
// También es malo: guardar números de tarjeta completos en tu base de datos// BIEN: usa Stripe Elements — los datos de tarjeta nunca tocan tus servidores
import { CardElement, useStripe } from '@stripe/react-stripe-js';
// Los datos de tarjeta van directamente del navegador a Stripe
// Solo recibes un token paymentMethodId
const { paymentMethod } = await stripe.createPaymentMethod({
type: 'card',
card: cardElement
});
// Guarda paymentMethod.id en tu DB — no datos de tarjetaEjemplo Real
La brecha de Ticketmaster en 2018 expuso 40,000 tarjetas de pago en parte porque un script de chatbot de terceros tenía acceso a la página de checkout donde los datos de tarjeta estaban presentes en el DOM. El aislamiento en iframe de Stripe Elements habría prevenido esto.
Cómo Prevenirlo
- Nunca guardes números de tarjeta, CVVs o PANs completos en ningún lugar — ni en tu DB, ni en localStorage
- Usa Stripe Elements o Braintree hosted fields — los datos de tarjeta nunca entran en tu contexto JavaScript
- Guarda solo el ID de cliente de Stripe y el ID del método de pago en tu base de datos
- Si debes manejar datos de tarjeta, logra el cumplimiento PCI DSS — es costoso y complejo, usa un servicio de tokenización en su lugar
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Sin Política de Privacidad
lowOperar sin una política de privacidad viola GDPR, CCPA y regulaciones similares — y hace que los usuarios desconfíen justificadamente del manejo de sus datos.
Sin Términos de Servicio
lowSin términos de servicio, no tienes base legal para restringir el abuso, terminar cuentas o limitar tu responsabilidad por contenido generado por usuarios.
Sin Eliminación de Cuenta
mediumNo ofrecer eliminación de cuenta viola el derecho de supresión del GDPR y el derecho a eliminar del CCPA — y es una señal de alerta de privacidad significativa para los usuarios.
Sin Banner de Cookies
lowEstablecer cookies no esenciales sin consentimiento del usuario viola los requisitos del GDPR y la Directiva ePrivacy para usuarios de la UE.