【问题标题】:PayPal and Microsoft WebAPI: best security approachPayPal 和 Microsoft WebAPI:最佳安全方法
【发布时间】:2014-04-13 18:45:49
【问题描述】:

我正在创建一个 WebApi 项目,旨在处理我的项目中的付款。 其实我的做法是这样的:

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

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

假设: - 调用 CreatePaymentMethod,用户用 Fiddler 嗅探重定向的交易 ID - 创建和临时调用 PaymentApprovalMethod 之类的。

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

  • 将 PaymentApprovalMethod 的调用限制(我不知道如何)仅限来自 Paypal 的消息
  • 在 PaymentApprovaMethod 中交叉检查付款(好的,用户,您说交易 ID 123 已完成,我会在信任此调用之前联系 paypal 进行验证)

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

我错过了什么吗?我还能做些什么来避免这个问题吗?

【问题讨论】:

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


    【解决方案1】:

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

    您的 IPN 侦听器的一部分将包括对 PayPal 服务器的回调,以验证数据是否确实来自他们。然后,您可以单独记录 IPN,并且只处理经过验证的 IPN,这意味着您知道有人不只是自己直接发布到它。

    有些人确实走得更远,只接受来自PayPal's IP addresses 的该脚本的流量,但是,他们确实更改了很多地址,我认为这只是一件麻烦事。验证对我来说一直是足够的。

    IPN 绝对是我向您推荐的。

    【讨论】:

    • 重新阅读你原来的问题,听起来你已经走上了这条路。
    猜你喜欢
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    相关资源
    最近更新 更多