PayPal和Microsoft Web API:最佳安全方法

时间:2014-04-13 18:45:49

标签: security rest ssl paypal asp.net-web-api

我正在创建一个旨在处理项目付款的WebApi项目。 实际上,我的方法就像:

  • CreatePaymentMethod(创建付款,联系paypal并将用户重定向到付款页面。如果付款已完成,请重定向到PaymentApprovalMethod)
  • PaymentApprovalMethod(确认我系统上的付款,允许用户访问内容)

我想知道的是......如果用户直接创建一条消息来调用PaymentApprovalMethod会怎样?

假设: - 调用CreatePaymentMethod,用户使用Fiddler嗅探重定向的事务ID - 创建和批量调用PaymentApprovalMethod,如。

我看到两种可能的方案来处理这种情况:

  • 限制(我不知道如何)仅对Paypal的消息调用PaymentApprovalMethod
  • 交叉检查PaymentApprovaMethod内的付款(好的,用户,你说交易ID 123已经完成,我会在信任此电话之前联系paypal验证这一点)

第二个似乎更安全但也更多"时间/资源"有问题..

我是否遗漏了什么?我还能做些什么来避免这个问题吗?

1 个答案:

答案 0 :(得分:1)

看看Instant Payment Notification (IPN)。 PayPal的系统会将交易数据发布到您为帐户中的所有交易设置的监听器脚本,无论是付款,退款,争议,清算付款(来自挂起)等等。您可以使用它来完全自动化许多后付款程序。

您的部分IPN监听器将包含一个回拨给PayPal服务器的电话,以验证数据是否实际来自他们。然后,您可以单独记录IPN,并且只处理经过验证的IPN,这意味着您知道某人并不是直接自己发布IPN。

有些人确实更进了一步,只接受来自PayPal's IP addresses的脚本的流量,然而,他们确实改变了他们的地址,我认为这只是麻烦。验证对我来说一直都足够了。

IPN绝对是我推荐给你的。