我正在制作一项网络服务,信用卡信息将作为用户个人资料的一部分存储,并将用于处理付款。
但是,我不喜欢将卡信息保存为数据库中的原始文本。相反,我想以某种方式对卡号进行散列,以便在恶意人员访问数据库时,该站点的用户将尽可能保持安全。
我认为它可以与密码的哈希方式类似,但一个重要的区别是我需要能够通过第三方API解除哈希并发送信用卡信息。
如何在rails中向Devise用户添加哈希信用卡?
感谢您的帮助
答案 0 :(得分:5)
我强烈建议您不要在自己的数据库中存储信用卡号码。很难满足支付卡行业数据安全标准 - a.k.a. PCI合规性。
http://en.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard
基本上,即使卡号经过哈希处理,您仍有责任满足非常高的安全标准。只有信用卡处理器和/或网关(PayPal,Stripe,Authorize.net等)通常存储信用卡信息,因为担心满足这些严格的PCI标准是他们工作的一部分,因此您作为商家,没有担心它。使用他们的服务器来存储客户的加密支付信息并允许客户在想要进行新购买时再次检索它是相对容易的。因为作为商家,您实际上无法访问加密或不加密的卡信息,如果卡号被盗,您不负责 - 处理器是。
对于大多数这些处理器来说,它实际上是一个很大的卖点。
修改强>
好消息!看起来Ordr.in提供了这项服务,从他们的常见问题解答看来,它们看起来也符合PCI标准:Ordr.in PCI是否符合信用卡处理的要求?
是。我们与Braintree合作,对所有人进行PCI兼容CC处理 交易。
看起来您需要的所有内容都在API文档中 - https://hackfood.ordr.in/docs/user#addCreditCard
从我所看到的,它非常简单。用户使用您的服务作为第三方使用Ordr.in创建帐户。用户可以将信用卡保存到他们的帐户(全部存储在Ordr.in的服务器上),然后当用户想要收费时,他们只需使用他们的电子邮件和密码登录。看起来很直接!我不能亲自为ordr.in担保,但他们看起来非常合法。