PayPal IPN 向通知 URL 发送一个包含可变数量字段的 POST 请求,为了确认 POST 请求是合法的,我们需要向cmd=_notify-validate
PayPal 重新提交相同的请求以及一个附加字段,然后它会回复VERIFIED
或INVALID
。
我的问题是,为什么我们需要将请求重新发送到 PayPal?这样的东西还不够吗?
if (preg_match('~^(?:.+[.])?paypal[.]com$~i', gethostbyaddr($_SERVER['REMOTE_ADDR'])) > 0)
{
// request came from PayPal, it's legit.
}
如果我们可以信任服务器正确解析 IP,我假设我们可以信任来自 PayPal 的所有请求,不是吗?