如何在PHP页面之间安全地传递信用卡信息?我正在构建一个电子商务应用程序,我想让用户通过这样的结账:
输入信息->审阅->最终确定订单
问题是,我不确定如何安全地传递信用信息,从用户输入它们到我处理它时(在Finalize Order步骤)。我听说使用会话是不安全的,即使使用加密也是如此。
任何帮助都将不胜感激!
发布于 2010-03-28 11:23:49
我不会把它放在任何地方。这是一个太大的风险,可能是不道德的。
通过https发布表单向支付网关发送请求,并仅存储交易结果。
您可能只关心交易是被批准还是被拒绝。谁会关心数字是多少呢?
发布于 2010-03-28 13:53:09
不要在会话中存储信用卡信息,不要将其存储到数据库中,也不要将其存储到文件中。相反,在隐藏的html输入中将cc信息写回评论页面。
因此,程序流的工作方式如下:
这种方法有两个优点:
协议的安全范围内。这意味着,在任何情况下,加密的信用卡信息都必须提交到您的服务器-这种方法仍然完全依赖于SSL的效率,而不会引入信用卡数据持久化的复杂性。
最后这一点引起了另一个问题--通过使用评论页面,您可以将加密的信用卡数据在网络上传输的次数增加一倍。使用这种方法,至少有4次传输:客户端到服务器,服务器到客户端,客户端到服务器(再次),然后服务器到网关。在没有审查的情况下,至少有2次传输:客户端到服务器和服务器到网关。一个评论页面的便利性值得冒额外传输的风险吗?这是你作为web开发人员(和你的客户)必须做出的决定。
发布于 2010-03-28 11:08:42
首先,您应该使用HTTPS协议来确保连接是加密的。
在此之后,您可以将数据存储在$_SESSION超级全局数据库中。数据存储在您的服务器上,因此相对安全。
您可以采用类似的技术,将信息插入到订单数据库中,其中的键是GUID或其他相当随机且唯一的东西。然后,当这个人去修改/查看他们的订单时,您应该将订单ID存储在URL的GET部分(或者,如果您是偏执狂,则存储在cookie/会话变量中):
https://example.com/order?orderID=akjgflkhaslasdfkjhalsdjkljahs为了提供额外的安全性,您还可以在Order Table中存储IP地址,并确保IP和订单ID匹配。
https://stackoverflow.com/questions/2531752
复制相似问题