【发布时间】:2013-04-15 03:28:23
【问题描述】:
我在预订流程结束时有以下表格(简化版):
<form action="https://www.paypal.com/cgi-bin/webscr" name="paypalForm" method="post">
<input type="hidden" name="amount" value="<?=$price;?>">
<input type="hidden" name="business" value="business@email.co.uk">
<input type="hidden" name="notify_url" value="http://website.co.uk/ipn">
</form>
我只省略了地址名称等内容。因此,当他们通过 Paypal 付款时,我使用 paypal IPN 在数据库中将它们标记为已付款。 然而..
我已经到了我的预订系统的末尾并查看了网页的来源,修改了企业电子邮件地址和金额。我还没有尝试过完整的交易,但肯定有 Paypal 中的“notify_url”向我的服务器发送 IPN 消息并将此人标记为已付款?这不是可怕的安全吗?当然这不是所有贝宝付款的运作方式,我一定是遗漏了一些东西。
我能想到有两件事可以防止这种情况发生:
- 如果我删除“notify_url”,我在 in paypal 中设置的 IPN URL 是否可以代替? paypal 在隐藏变量
notify_url上设置了什么值,它会覆盖paypal 后端的设置吗? - 在我的 IPN 代码中,我可以检查业务和金额。我目前没有,因为我没有阅读文档中我应该阅读的任何地方。但现在,我想这可能是一个非常好的主意。
【问题讨论】:
标签: php security paypal paypal-ipn