首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在PHP页面之间安全地传递信用卡信息

如何在PHP页面之间安全地传递信用卡信息
EN

Stack Overflow用户
提问于 2010-03-28 11:05:03
回答 6查看 8.3K关注 0票数 7

如何在PHP页面之间安全地传递信用卡信息?我正在构建一个电子商务应用程序,我想让用户通过这样的结账:

输入信息->审阅->最终确定订单

问题是,我不确定如何安全地传递信用信息,从用户输入它们到我处理它时(在Finalize Order步骤)。我听说使用会话是不安全的,即使使用加密也是如此。

任何帮助都将不胜感激!

EN

回答 6

Stack Overflow用户

发布于 2010-03-28 11:23:49

我不会把它放在任何地方。这是一个太大的风险,可能是不道德的。

通过https发布表单向支付网关发送请求,并仅存储交易结果。

您可能只关心交易是被批准还是被拒绝。谁会关心数字是多少呢?

票数 10
EN

Stack Overflow用户

发布于 2010-03-28 13:53:09

不要在会话中存储信用卡信息,不要将其存储到数据库中,也不要将其存储到文件中。相反,在隐藏的html输入中将cc信息写回评论页面。

因此,程序流的工作方式如下:

  1. 用户通过html表单将付款和账单信息发布到服务器。
  2. 服务器验证此信息的格式是否正确(例如,信用卡具有适当的位数、输入了帐单地址等)。
  3. 验证后,服务器会写回作为隐藏表单输入字段提交的所有信息。这包括帐单地址、送货地址和信用卡信息。
  4. 审阅页上的表单(带有隐藏的输入字段)有一个标记为"Finish Order“/ "Complete Order”的按钮。此审查表发布到最终订单脚本。
  5. 最终脚本在您的数据库中存储帐单/发货信息,并将信用卡信息提交到您的支付网关。

这种方法有两个优点:

  1. 节省了存储信用信息时所需的额外PCI合规性的开销和成本。SSL
  2. 此方法保持在

协议的安全范围内。这意味着,在任何情况下,加密的信用卡信息都必须提交到您的服务器-这种方法仍然完全依赖于SSL的效率,而不会引入信用卡数据持久化的复杂性。

最后这一点引起了另一个问题--通过使用评论页面,您可以将加密的信用卡数据在网络上传输的次数增加一倍。使用这种方法,至少有4次传输:客户端到服务器,服务器到客户端,客户端到服务器(再次),然后服务器到网关。在没有审查的情况下,至少有2次传输:客户端到服务器和服务器到网关。一个评论页面的便利性值得冒额外传输的风险吗?这是你作为web开发人员(和你的客户)必须做出的决定。

票数 8
EN

Stack Overflow用户

发布于 2010-03-28 11:08:42

首先,您应该使用HTTPS协议来确保连接是加密的。

在此之后,您可以将数据存储在$_SESSION超级全局数据库中。数据存储在您的服务器上,因此相对安全。

您可以采用类似的技术,将信息插入到订单数据库中,其中的键是GUID或其他相当随机且唯一的东西。然后,当这个人去修改/查看他们的订单时,您应该将订单ID存储在URL的GET部分(或者,如果您是偏执狂,则存储在cookie/会话变量中):

代码语言:javascript
运行
复制
 https://example.com/order?orderID=akjgflkhaslasdfkjhalsdjkljahs

为了提供额外的安全性,您还可以在Order Table中存储IP地址,并确保IP和订单ID匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2531752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档