【发布时间】:2011-04-14 11:46:55
【问题描述】:
我正在构建一个需要接受信用卡付款的应用程序,例如active merchant。在安全性方面,它是否可以住在heroku 并使用authorize.net(或类似的)作为支付网关?
如果需要存储信用卡号怎么办?
编辑
不会将用户转发到 authorize.net。
【问题讨论】:
标签: security heroku authorize.net activemerchant
我正在构建一个需要接受信用卡付款的应用程序,例如active merchant。在安全性方面,它是否可以住在heroku 并使用authorize.net(或类似的)作为支付网关?
如果需要存储信用卡号怎么办?
编辑
不会将用户转发到 authorize.net。
【问题讨论】:
标签: security heroku authorize.net activemerchant
简单的答案是肯定的,我相信是的,但除此之外,这取决于。
您可以为与第三方服务(http://docs.heroku.com/config-vars)相关的各种键和其他值设置环境变量,或者只需将它们签入并部署它们。
如果您使用的是 authorize.net 的托管支付服务,并转发到他们的网站,则您自己不需要 ssl。如果您将托管提交信用卡号和个人信息的表单,然后通过服务器上的 API 将其转发到 authorize.net,您需要为 heroku (http://docs.heroku.com/ssl) 设置 ssl,以便您的表单是安全。
现在,通过信用卡接受付款并通过它是一回事,保存信用卡号码和其他私人信息是另一回事。没有向您指出各种安全标准文档(即此处适用 PCI DSS),我只会说除非您绝对必须,否则不要存储 CC 号码和相关的个人信息,只需转发到网关并确保您不是记录这些字段 (http://guides.rubyonrails.org/security.html#logging)。如果您确实需要存储信用卡数据,我认为您需要对数据库和服务器进行更多控制才能达到合规性,而且我不知道您可以使用 AWS 或 heroku 这样的通用云主机并执行此操作(也许其他一些 SO 用户会纠正我)。但是,使用 authorize.net 之类的支付网关可以帮助您实现目标。
我还要指出,不同的州现在都有关于存储敏感数据的法律(例如我居住的 MA),因此还有另一个理由避免这样做,除非它对您的业务模式至关重要。
有关 PCI 合规性的一些过时但很好的一般性讨论,请看这里:http://broadcast.oreilly.com/2009/02/pci-in-the-cloud.html
【讨论】: