【问题标题】:What is a good and secure web payment architecture什么是好的和安全的网络支付架构
【发布时间】:2011-03-20 02:41:11
【问题描述】:

我正在运行一个客户为商品付款的交易网站。截至目前,我正在使用我的支付处理器 (pp) 公司网页来处理付款,即客户端被重定向到 PP 服务器,并在付款完成后重定向回我的站点。一个很大的缺点就是不能自定义PP页面,或者很少。

现在,我想直接在我的网站上处理付款。我只需要将所有支付数据发布到我的支付处理器,它就会返回响应。我已经知道我需要符合 PCI 标准。我的网站是使用 AJAX 调用 RESTeasy WebServices 和 Java 服务器完成的。

现在我的问题是,我应该使用 javascript 在客户端验证每个字段,还是在服务器上摆动所有内容并在那里完成工作?我应该使用客户端上的 FORM 还是使用服务器上的 HttpUrlConnection 直接发布到支付处理器?市场上这样做的基准是什么?我找到了很多 PHP 示例,但不幸的是没有时间学习 PHP。

谢谢

【问题讨论】:

  • 永远不要只在客户端上进行验证! (特别是对于支付系统...)如果您在客户端使用 JavaScript 进行验证,那么这纯粹是为了用户的方便——它很容易被绕过。
  • @Cameron:谢谢 Cameron,但现在我怎么能接受你的回答,因为你在评论中发布了它?!?
  • @Cameron:谢谢。至少,我对你的评论投了票。我认为这是我目前能做的最好的事情!

标签: java javascript ajax web-services payment-processing


【解决方案1】:

您是要将数据直接发布到支付处理器还是收集信用卡信息取决于您的支付处理器以及您是否要将收集的某些信息存储在信用卡页面上(不要 存储信用卡信息;如果需要,只存储最后四位数字。)

将表单直接发送给支付处理商是最简单的方法。这也可能意味着您甚至不需要符合 PCI 4 级标准,因为信用卡信息都不会通过您的系统。见这里:

http://www.pcicomplianceguide.org/pcifaqs.php#2

另一方面,如果您想存储帐单地址或信用卡号的最后四位数字 - 或将此数据插入您想通过电子邮件发送的收据中 - 您需要写您自己的服务器端代码,该代码从信用卡页面收集信息并使用 HttpUrlConnection 将数据发布到支付处理器。如果您的支付处理器提供 API,您也可以使用它。

在任何一种情况下,您都应确保您的付款页面只能通过 SSL 进行查看。在 Java Web 应用程序中,您可以使用 web.xml 中的传输保证条目来执行此操作:

  <security-constraint>
   <user-data-constraint>
     <transport-guarantee>CONFIDENTIAL</transport-guarantee>
   </user-data-constraint>
   <web-resource-collection>
     <url-pattern>your_payment_page.jsp</url-pattern>
   </web-resource-collection>
  </security-constraint>

这将确保即使用户通过纯 HTTP 访问您的支付页面,应用程序服务器也会重定向到 HTTPS。

从处理者的角度来看,此页面(来自我处理过的支付处理者)包含更多信息:

http://wiki.usaepay.com/developer/transactionapi

【讨论】:

    【解决方案2】:

    正如所指出的,您不能仅在客户端上进行验证,因为人们可以获取您的客户端代码并对其进行修改。此外,您需要提供您不希望用户看到的帐户信息。您的服务器必须验证并处理请求。

    这是一项相当复杂的任务。您需要确保通过 SSL (HTTPS) 访问该页面,并且您需要安全地访问您的信用卡处理器。

    您可以从服务器端代码执行一些基本验证。查看http://www.blackbeltcoder.com/Articles/ecommerce/validating-credit-card-numbers

    除此之外,这实际上取决于您的处理器和它们为您提供的 API。您需要编写符合其规范的代码。

    【讨论】:

      【解决方案3】:

      感谢大家的回答。最后,它要复杂得多,仅出于网页设计的目的,自己负责收集支付数据的责任太大了。我仍然会修改我的支付页面,通知用户他们将被重定向到支付处理器网页以完成支付。有点像我现在所拥有的混合体。这对他们和我来说都更安全。

      再次感谢。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-11
        相关资源
        最近更新 更多