您如何在 PHP 中的页面之间安全地传递信用卡信息?我正在构建一个电子商务应用程序,我想让用户像这样进行结帐:
输入信息 -> 审核 -> 完成订单
问题是我不确定如何安全地从用户输入信用信息到我处理信用信息(在完成订单步骤)。我听说使用会话是不安全的,即使使用加密也是如此。
任何帮助,将不胜感激!
您如何在 PHP 中的页面之间安全地传递信用卡信息?我正在构建一个电子商务应用程序,我想让用户像这样进行结帐:
输入信息 -> 审核 -> 完成订单
问题是我不确定如何安全地从用户输入信用信息到我处理信用信息(在完成订单步骤)。我听说使用会话是不安全的,即使使用加密也是如此。
任何帮助,将不胜感激!
我不会把它存放在任何地方。这风险太大,可能不道德。
通过 https 发布表单向支付网关发送请求,并仅存储交易结果。
您可能只关心交易是被批准还是被拒绝。谁在乎号码是多少?
不要将信用卡信息存储在会话中,不要将其存储到数据库中,不要将其存储到文件中。相反,在隐藏的 html 输入中将 cc 信息写回评论页面。
所以程序流程将像这样工作:
这种方法的优点有两个:
最后一点引起了另一个担忧——通过拥有一个评论页面,您将加密信用卡数据通过网络传输的次数增加了一倍。使用这种方法,最少有 4 次传输:客户端到服务器、服务器到客户端、客户端到服务器(再次)然后服务器到网关。未经审查,至少有 2 次传输:客户端到服务器和服务器到网关。评论页面的便利值得额外传输的风险吗?这是您作为 Web 开发人员(和您的客户)必须做出的决定。
一种替代方法是使用支付配置文件服务,如Authorize.net 的客户信息管理器(还有其他)。您通过他们的 API 将付款信息存储在配置文件中,然后在实际向卡收费时使用配置文件 ID。这样,您就永远不会将数据存储在您的服务器上。
嗯,首先你应该使用 HTTPS 协议来确保连接是加密的。
之后,您可以将数据存储在$_SESSION
超全局中。数据存储在您的服务器上,因此相对安全。
您可以执行类似的技术,将信息插入订单数据库,其中键是 GUID 或其他相当随机且唯一的东西。然后,当该人去修改/查看他们的订单时,您应该将订单 ID 存储在 URL 的 GET 部分(或者如果您偏执,一个 cookie/会话变量):
https://example.com/order?orderID=akjgflkhaslasdfkjhalsdjkljahs
为了提供额外的安全性,您还可以在订单表中存储一个 IP 地址,并确保 IP 和订单 ID 匹配。
我想我将不得不同意。存储信用卡号码的风险太大,后果可能很牵强。
理想的方法是将信息传递给第三方处理器,并仅使用返回的结果来塑造您的脚本逻辑。
if (transaction){
// code goes here
}
else{
// code goes here
}
希望你明白这一点...... :)
不是我的专业领域,但我认为您希望将其存储在会话中,但也使用“同步令牌”(或现在孩子们所说的任何东西)来帮助避免 CSRF 攻击。
当然,您希望使用 https(正确),避免 URL 和隐藏字段中的敏感数据,避免在任何响应中放置非常敏感的信息,等等,等等。