用php表单处理信用卡

Posted

技术标签:

【中文标题】用php表单处理信用卡【英文标题】:Credit Card processing with php form 【发布时间】:2012-02-15 04:19:12 【问题描述】:

我正在考虑将信用卡处理集成到一个表单中。基本上会发生什么:

    客户将进入受 ssl 保护的网站

    他们将自己的信息输入一个表单,然后选择不同的下拉选项,jquery 然后在他们选择不同的选项时即时更新他们的报价。

    一旦客户对他们按提交的报价感到满意,就会将信息发布到付款页面。

    客户输入他们的信用卡号,然后大概使用信用卡处理器脚本将其发布到信用卡处理器,以及从帐户中扣除的价格。 (这部分不确定)。

    然后信用卡处理器返回一个真或假值。

    如果返回 false echo "transaction failed" ,否则将客户详细信息输入数据库并显示成功消息。

我想知道这是否是要遵循的正确程序?,因为我正在为之做这件事的人正在谈论将信用卡详细信息保存到数据库或在发送警报的 csv 中通过电子邮件发送它们响铃,所以我告诉他们这两种方法都不是安全的选择,应该由卡处理公司来处理。

我只是想澄清一下上述过程是正确的,然后我才建议他们的高度不安全的替代计划。

【问题讨论】:

是的,它基本上就是这样工作的。你很少想自己存储信用卡,这会让你承担很多潜在的责任。 您可能想要从处理器中保存身份验证。明智的做法是让与您合作的人了解 PCI 合规性。 当他们说要存储信用卡详细信息时,我说他们必须遵守 pci 规定,因此没有机会使用他们目前拥有的共享主机,所以希望这会让他们闭嘴除非他们想在专用的安全服务器上花很多钱。 我非常怀疑您是否会在共享主机上获得 PCI 认证。大多数都进行严格的端口扫描以确保没有任何显示,因此打开 FTP 或 SSH 会自动失败。请记住,您不需要在服务器上花费大量资金。您可以以每月 20 美元的价格获得合适的 VPS,这可能低于您为商家帐户支付的费用。 【参考方案1】:

首先,将此类数据保存在数据库中并非“不安全”。如果您有回头客,并且希望为他们提供不必一直重新输入信息的服务,那么使用数据库是一个想法。为了确保这个想法安全,您需要为数据库管理、服务器访问和适当的数据安全(即散列、加密等)制定适当的策略

至于您的脚本,如果您通过 POST 向 php 脚本提交数据,那么 PHP 脚本肯定需要与数据库通信(无论是您的本地数据库还是与信用卡脚本建立的连接)。

要回答您的问题,您需要确切了解脚本的要求,然后再对您需要在本地执行的操作做出任何判断。如果脚本只是接受输入并返回一个值,那么您必须将其集成到您的 WebApp 中。

如果有更多详细信息?

【讨论】:

存储信用卡数据通常会让您承担不必要的责任。大多数支付处理商通过返回某种身份验证令牌来支持重复收费,您可以使用该令牌进行重新计费,而无需存储其 CC#。 我从来没有说过这是个好主意。我只是说将 CC# 存储在数据库中并不是不安全的。 不是天生的,但它确实使您必须满足更严格的安全要求。 同意。但这不是由我们来决定的。决定实施哪些信息安全策略取决于他们的业务。如果有的话,我的回答有一定的教育意义和价值。不确定它是否值得 -1,这不是最好的答案。 谢谢 ceejayoz ,这很容易知道,这就是他们想要保留信用卡详细信息的原因,但我向他们指出,如果他们被盗,这将使他们承担责任,你的例子听起来像一个更安全的选择。【参考方案2】:

处理此问题的最简单方法是使用支付网关进行注册。他们将获得有关如何与服务器安全通信的说明。然后将钱汇到一个互联网商家帐户。

然后,您可能需要为您的网站提供安全套接字层证书,以便与支付网关的服务器建立安全连接。

英国和爱尔兰的支付网关示例是SagePay。

【讨论】:

感谢您的回答,我听说了很多关于 Sagepay 的好消息,因此建议将它们作为一个选项。我已经提前告诉他们他们需要一个 SSL 证书,这样他们就知道在这方面会发生什么,我只是想从获取客户详细信息开始澄清。谢谢:-)

以上是关于用php表单处理信用卡的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP MySql 站点中实现信用卡处理

PHP cURL - 处理信用卡交易时的安全性

PayPal PHP API,信用卡和借记卡的处理方式相同吗?

处理信用卡的最安全方法[关闭]

Php - 将信用卡信息存储在服务器之外?

限制信用卡处理脚本/机器人的影响