【问题标题】:Storing payment info存储付款信息
【发布时间】:2017-04-19 10:23:06
【问题描述】:

这是一个关于存储和检索网络商务应用程序支付信息的一般性问题

我们目前的方法是让用户在重定向后在第三方网络表单上输入他们的付款详细信息,类似于使用 PayPal 所做的。

为了方便重复订单,显然涉及到存储支付信息细节,例如信用卡号、PII 信息。

由于这具有严重的安全隐患,我想知道普遍接受的最佳做法是什么。基本上是否建议使用其他工具(例如 Stripe)来处理所有这些?还是其他人采用了内部解决方案?

作为参考,我们正在使用 Java Servlets/JSP。

【问题讨论】:

    标签: java jsp web-applications payment-gateway payment


    【解决方案1】:

    我不知道你为什么投反对票。这实际上是一个有趣的问题。

    这个问题的一般答案是NO,不要存储任何东西。让 Paypal 等第三方支付网关为您服务。

    这不仅关乎安全(您可能会做错),还必须处理法规,例如存储信用卡等敏感数据的权利。

    另一种非常冒险且应该避免的答案是将其存储在浏览器的会话存储中。至于这个answer,会话存储是相当安全的。请记住使用 HTTPS 并采取 XSS 预防措施。但同样,这不是我推荐的。

    【讨论】:

    • 它被否决了,因为它太宽泛,不是一个特定的编程问题
    • 谢谢haipham。我认为你明白了这一点并完美地回答了,不知道约翰想说什么。但是在阅读了这里的答案之后,使用其他处理 PCI 合规性的工具似乎确实是一个更好的选择。
    【解决方案2】:

    您的问题范围很广,“最佳实践”通常是个人偏好和偏见的代名词。

    不过……

    在大多数国家/地区,处理信用卡详细信息需要您与银行达成安排(通常称为“持卡人不在场”),当您接受该安排时,银行会对您施加相当严格的安全要求。在英国,这些要求被称为“支付卡行业数据安全标准 (PCI DSS)”。

    这里有多种选择 - 大型在线商店可能会投资在其基础架构上存储支付详细信息,但满足所需安全标准的成本很高。

    您还可以通过payment gateway 工作 - 一家管理与银行互动的中介公司。他们通常有几个不同的集成选项——从“类似 Paypal”的重定向到允许您收集信用卡数据并通过 API 传递以验证付款的 API。许多支付网关允许您将支付详细信息存储在其基础设施(符合 PCI)上,并检索令牌以供将来支付。

    这个过程是这样的:

    customer places first order
    customer enters payment details
    payment gateway verifies payment details
    payment gateway collects payment
    payment gateway stores payment details
    payment gateway sends token to website
    website stores payment token with customer profile
    customer places second order
    website retrieves payment token
    website asks "use previous payment details"
    customer agrees
    website sends token to payment gateway
    payment gateway retrieves payment details
    payment gateway collects payment
    payment gateway tells website payment succeeded
    

    【讨论】:

    • 感谢Neville,因为我们正在寻找一种方法,让已经购买过的客户轻松回购,我们希望避免他们每次都需要重新输入付款信息。自己存储信息听起来太麻烦了
    猜你喜欢
    • 1970-01-01
    • 2015-07-22
    • 2012-08-15
    • 2013-01-05
    • 2014-12-08
    • 2018-04-21
    • 2012-05-21
    • 1970-01-01
    • 2011-11-20
    相关资源
    最近更新 更多