我正在构建一个应用程序,该应用程序需要接受诸如活动商家之类的信用卡付款。在安全性方面,它是否有可能存在于heroku上并使用authorize.net(或类似的)作为支付网关?
如果它需要存储信用卡号怎么办?
编辑
不会将用户转发到 authorize.net。
我正在构建一个应用程序,该应用程序需要接受诸如活动商家之类的信用卡付款。在安全性方面,它是否有可能存在于heroku上并使用authorize.net(或类似的)作为支付网关?
如果它需要存储信用卡号怎么办?
编辑
不会将用户转发到 authorize.net。
简单的答案是肯定的,我相信是的,但除此之外,这取决于。
您可以为与第三方服务 ( 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