PayPal IPN は、可変数のフィールドを持つ POST リクエストを通知 URL に送信します。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 からのすべての要求を信頼できると思いますよね?