Ale*_*lex 7 php security credit-card e-commerce
如何在PHP页面之间安全地传递信用卡信息?我正在构建一个电子商务应用程序,我想让用户像这样通过结帐:
输入信息 - >查看 - >完成订单
问题是我不确定如何安全地从用户输入信用信息到我处理信用信息时(在Finalize Order步骤).我听说使用会话是不安全的,即使加密也是如此.
任何帮助,将不胜感激!
Rim*_*ian 10
我不会把它存放在任何地方.这太冒了风险,可能不符合道德规范.
通过在https上发布表单向支付网关发送请求,并仅存储交易结果.
您可能只关心交易是否被批准或拒绝.谁在乎这个数字是多少?
不要将信用卡信息存储在会话中,不要将其存储到数据库中,也不要将其存储到文件中.相反,将cc信息写回隐藏的html输入中的评论页面.
所以程序流程会像这样工作:
这种方法的优点是双重的:
最后一点提出了另一个问题 - 通过一个评论页面,您将加密的信用卡数据通过网络传输的次数加倍.使用此方法最少有4个传输:客户端到服务器,服务器到客户端,客户端到服务器(再次),然后服务器到网关.没有审查,最少有2个传输:客户端到服务器,服务器到网关.评论页面的便利是否值得额外传输的风险?这是您作为Web开发人员(和您的客户)的决定.
好吧,首先您应该使用 HTTPS 协议来确保连接是加密的。
之后,您可以将数据存储在$_SESSION超级全局中。数据存储在您的服务器上,因此相对安全。
您可以使用类似的技术,将信息插入订单数据库,其中密钥是 GUID 或其他相当随机且唯一的东西。然后,当该人去修改/查看他们的订单时,您应该将订单 ID 存储在 URL 的 GET 部分中(或者如果您偏执,则存储在 cookie/会话变量中):
https://example.com/order?orderID=akjgflkhaslasdfkjhalsdjkljahs
Run Code Online (Sandbox Code Playgroud)
为了提供额外的安全性,您还可以在订单表中存储 IP 地址,并确保 IP 和订单 ID 匹配。