使用队列时何时验证 IPN PayPal



建议何时验证PayPal IPN?

选项 1 - 在处理程序 ipn 发布期间进行验证,然后保存 ipn 并将其排队(如果有效)。

  • 优点:攻击者无法通过发送虚假 IPN 来填充您的数据库
  • 缺点:
    • ipn 发布需要更长的响应时间,因为您需要发出 Web 请求进行验证,然后才能在 IPN 处理程序中使用 200 OK 进行响应
    • 攻击者可以让 Web 服务器忙于验证虚假 IPN

选项 2 - 延迟验证,保存并排队 ipn,使用 200 响应,然后在处理队列时进行验证。

  • 优点: 快速响应PayPal IPN
  • 缺点: 攻击者可以通过发送虚假 IPN 来填充您的数据库

或者您是否确实有其他措施来避免这两个选项的问题?

编辑:我正在使用PayPal自适应支付API,并且想知道使用该API时推荐的做法是什么。

PayPal现在支持发送共享机密而不是回发验证。我更喜欢这个,前提是(a)您的按钮在发布时使用HTTPS,(a)您的notify_url使用HTTPS。

回发验证存在许多问题,首先是要求以相同的顺序使用相同的 POST 变量。这是不可实现的,例如,在你没有这种控制级别的 servlet 中。然而,事实上,这似乎并不重要,这让人对程序的其他安全方面产生了怀疑。

最新更新