假设我有一张桌子,每排有2列: 1)一些信息 2)使用AJAX点击时删除当前信息
<table>
<tr>
<td> info 1 </td>
<td id="1" onclick="$.ajax('delete.php', {'id':this.id})"></td>
</tr>
<tr>
<td> info 2 </td>
<td id="2" onclick="$.ajax('delete.php', {'id':this.id})"></td>
</tr>
<tr>
<td> info 3 </td>
<td id="3" onclick="$.ajax('delete.php', {'id':this.id})"></td>
</tr>
</table>
有人可以使用浏览器检查元素并将id更改为其他数字 - 然后删除他想要的任何内容!我该怎样保护它?怎么样的其他网站(比如facebook用LIKES方法)呢?
答案 0 :(得分:2)
始终在服务器端验证您的数据!客户可以做任何他想做的事情,你不能对此做任何事......所以只有服务器端可以在最后验证
答案 1 :(得分:1)
您的服务器代码应始终验证用户是否有权执行某项操作,无论是删除,添加还是更新等等。任何会话cookie都通过Ajax调用传输,因此使用它们来检查用户是什么(不要忘记会话cookie也可以被劫持,因此在关键应用程序中将它们绑定到IP地址服务器端)。
编辑:其他方法 您还可以在服务器上生成一次性令牌,并让Ajax调用以及其中一个参数进行传输。在服务器上,您必须跟踪这些令牌,并且只允许使用有效令牌的操作。有效范围是:在相同的IP地址上生成少于x分钟。