我被要求实现一个页面,用户可以通过信用卡号码和 PIN 验证 + 一些其他方法(例如 SMS OTP)在两步过程中解锁她的帐户。
该流程建议先验证 CC 号码和 PIN,然后再进行 SMS OTP 验证。
为了防止滥用后端资源和可能的大规模 PIN 阻塞,一种想法是:
- 让第一页捕获 CC 编号和 PIN
- 仅使用 CC 号查找用户
- 向她的手机发送短信 OTP
- 如果 SMS OTP 检查,则验证 CC 号码和 PIN
因此,从用户在第一页输入它们到她在第二页接收并提交 OTP(我猜是几分钟),CC 编号和 PIN 将保存在内存中(HTTP 会话)。
这是否违反任何 PCI 规则?尤其是“将 PIN 保存在内存中”部分?
PIN 安全要求,2.0 版,内容如下:
要求 4:不得存储 PIN 码,除非作为存储转发交易的一部分,并且只能存储必要的最短时间。如果记录了交易,则必须在记录之前将加密的 PIN 块屏蔽或从记录中删除。
和正下方:
交易可以在特定条件下存储和转发 - ISO 9564
我检查了旧版本的 ISO 9564-1,但没有发现任何关于存储和转发的信息。有人对允许存储和转发的条件有所了解吗?
此外,将 PIN 码在内存中短时间保存也算“存储”吗?