validation - 使用队列时何时验证 paypal IPN?

标签 validation paypal queue paypal-ipn paypal-adaptive-payments

建议什么时候验证 paypal IPN?

选项 1 - 在处理程序 ipn post 期间验证,如果有效则保存并入队 ipn。

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

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

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

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

编辑:我正在使用 Paypal Adaptive Payments API,我想知道在使用该 API 时推荐的做法是什么。

最佳答案

PayPal 现在支持发送共享 secret 而不是回传验证。如果 (a) 您的按钮在发布时使用 HTTPS 并且 (a) 您的 notify_url 使用 HTTPS,我更喜欢这个。

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

关于validation - 使用队列时何时验证 paypal IPN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19826330/

相关文章:

带有正则表达式验证器回发问题的 ASP.Net FileUpload 控件

paypal - 在 Paypal 交易期间收到消息 "we are unable to validate your information"

php - Paypal IPN 安全性已验证

java - 以破坏性方式从 WebSphere 读取消息

java - 有界队列开销

javascript - 电话号码正则表达式示例

ruby-on-rails - 注册并同时创建新对象

java - 为什么BindingResult必须跟在@Valid后面呢?

javascript - document.body.innerHTML 问题

c - 处理多种结构类型的队列 [C]