将收件人电子邮件与Paypal IPN脚本的关键部分进行比较?

时间:2012-05-14 08:01:15

标签: paypal

在标准的Paypal IPN PHP脚本中,有一行来评估付款是否成功:

if ($_POST["payment_status"] == "Completed" && $_POST["receiver_email"] == $email)

评估付款状态的目的很明显。但据我所知,比较的第二部分似乎没有增加太多价值。

根据我的理解,$email值只是您想要发送错误和成功付款确认电子邮件的地方。 receiver_email只是Paypal上附加到商家帐户的电子邮件。

在我看来,这些可能不是一回事。特别是在使用Paypal沙箱进行测试时,我一直在绊倒我,因为当我设置帐户时,商家电子邮件地址部分是自动生成的,因此它不是我可以接收电子邮件的地方。

因此,由于两个电子邮件地址可能不同,我最初的想法是这种比较并不那么重要。但也许我缺少一个重要的安全考虑因素。

这种比较是否至关重要?

1 个答案:

答案 0 :(得分:2)

是的,在大多数情况下这是一项严格的检查,因为如果您在发布请求(按钮)中发送IPN,恶意用户可能会向自己的PayPal地址付款。

由于您有2个paypal帐户,因此更容易替换

$_POST["receiver_email"] == $email

in_array($_POST["receiver_email"], array("myemail1", "myemail2"))

就个人而言,即使您的IPN网址已在您的帐户中隐藏和配置,我也不会跳过接收方检查。我的简单方法可以确保您免受恶意请求的侵害。