【发布时间】:2013-09-11 22:11:25
【问题描述】:
您好,我建立了一个 PayPal 捐赠系统,并使用带有隐藏值的表单来制作我的按钮。我只是想到了人们可以查看源代码并查看这些值的事实。如果他们可以看到以下内容,是否存在安全威胁:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="myemail@myemail.com">
<input type="hidden" name="item_name" value="Coyote Pack">
<input type="hidden" name="item_number" value="200">
<input type="hidden" name="amount" value="4">
<input type="hidden" name="no_shipping" value="0">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="lc" value="AU">
<input type="hidden" name="bn" value="PP-BuyNowBF">
<table>
<tr><td>Player Unique ID</td></tr><tr><td><input type="text" name="custom" maxlength="200"></td></tr>
</table>
<input type="submit" border="0" name="submit" alt="PayPal - The safer, easier way to pay online." value="Coyote Pack - $4">
</form>
我想我的问题是他们没有看到它,但他们可以玩弄它以以任何方式给 PayPal 错误值吗?
例如,我正在运行 IPN,而我的数据库使用该 item_number 为捐赠者提供某些特权。有人可以复制我的代码,粘贴到他们自己的网站上,将“金额”更改为零并获得免费的东西吗?
【问题讨论】:
-
是的,它“安全”,没有信息需要保密。付款时您当然会通过 IPN 检查值
-
发送到浏览器的任何内容都可以看到和更改。假设一切都是不可信的,并从那里开始工作。
-
是的,他们可以将金额更改为零。他们可以将这些值更改为他们喜欢的任何值并将表单提交到贝宝。
-
有没有办法防止这种情况发生?我猜真正的贝宝按钮可以阻止它?
-
你不阻止它,你检查贝宝返回的值