sql >> Base de Datos >  >> RDS >> Mysql

Almacenamiento de números de tarjetas de crédito en SESSION:¿formas de evitarlo?

Almacene los detalles de la tarjeta en cualquier medio de persistencia (base de datos, lo que sea), pero cifre el número de tarjeta con un único y aleatorio clave que almacena en la sesión. De esa forma, si se pierde la sesión, también se perderá la clave, lo que le da tiempo suficiente para limpiar los datos vencidos o abandonados.

También asegúrese de que sus sesiones estén protegidas contra el secuestro. Existen soluciones de hardware para esto, pero una forma simple en el código es vincular la ID de la sesión a un hash del primer octeto de la IP más el agente de usuario. No es infalible, pero ayuda.

Editar :La clave para minimizar su riesgo es asegurarse de deshacerse de esa información lo antes posible. Inmediatamente después de que se realice la transacción, elimine el registro de la base de datos. También necesita un trabajo continuo (por ejemplo, cada 5 minutos) que elimine cualquier registro anterior al tiempo de espera de su sesión (generalmente 20 minutos). Además, si está utilizando una base de datos para este muy datos temporales, asegúrese de que no estén en un sistema de copia de seguridad automatizado.

Nuevamente, esta solución no es infalible y ni siquiera estoy 100% seguro de que cumpla con los requisitos de seguridad de CC. Sin embargo, debería requerir que un atacante tenga el control total del tiempo de ejecución de su entorno para descifrar activamente la información de CC del cliente, y si una instantánea de su base de datos se ve comprometida (mucho más probable/común), solo se puede aplicar fuerza bruta a un CC a la vez. que es lo mejor que puede esperar.