建议何时验证贝宝IPN?

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


优点:攻击者无法通过发送假IPN来填充数据库
缺点:

ipn post需要更长的响应时间,因为您需要
发出网络请求以进行验证,然后才能在ipn处理程序中以200 OK进行响应
攻击者可使您的Web服务器忙于尝试验证假IPN



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


优点:快速响应贝宝IPN
缺点:攻击者可以通过发送假IPN来填充数据库


还是您有其他避免出现这两种选择的问题的地方?

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

最佳答案

贝宝现在支持发送共享机密,而不是回发验证。我更喜欢这样做,因为(a)您的按钮在发布时使用HTTPS,并且(a)您的notify_url使用HTTPS。

回发验证存在许多问题,首先是要求以相同的顺序使用相同的POST变量。这是无法实现的,例如在没有该级别控制的servlet中。但是实际上,它实际上似乎并不重要,这使该过程的其他安全性方面产生了疑问。

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

10-13 08:53