在第3步我有一张接受信用卡的表格,第4步重新打印信息,包括信用卡的最后4位数字,第5步我需要知道完整的CC#来处理它并发送它通过我与第三方供应商的https连接 - 我应该通过隐藏的输入还是$_SESSION
存储它,以便我可以在第3步和第5步之间访问它?
仅供参考:我的整个网站已经过https'd。
答案 0 :(得分:9)
将信用卡号作为最后一步,这样您就不必存储它。存储该信息存在许多法律问题。
答案 1 :(得分:2)
SSL不会保护存储在磁盘上的数据。此外,PHP会话数据默认存储在具有最小权限的临时目录下的文件系统中。因此,不仅数据以纯文本形式存储,而且许多不同的系统用户也可以访问(取决于您的Web服务器配置)。
如果您想实施多步结帐流程,我建议您在浏览器端执行一些AJAX / Javascript魔术。您可以使用隐藏/折叠的一系列DIV收集账单信息,并一次性发布完整的数据集,将CC数据一次性发送到您的服务器,然后将CC数据传输到您的支付处理器。
答案 2 :(得分:2)
绝对不在隐藏的表单字段中。如果用户离开或保存页面或某人点击后退按钮,则可获得完整的CC信息。计算机可能与他人共享。
如果您确实将CC保留到磁盘/数据库,那么CC必须加密,否则您将违反支付卡行业(PCI)要求。为方便起见,您可以将最后4位数字分开保留。
请注意,如果您参加会议(由于其他原因),您必须处理会话攻击,包括但不限于会话固定。
另一种可能性是重做你的客户端,使得各个步骤只是ajax调用(cc在js变量中不在表单字段中)并使用CSS显示/隐藏各种div - 在最后一步发布整个信息到你的服务器。
答案 3 :(得分:1)
根本不要存储它。那里有很多信用卡处理设施。除非你绝对必须拥有这个功能,否则不要这样做。
说真的,请你选择。
答案 4 :(得分:0)
两种方式。你应该(以某种方式)将它存储在服务器上。