通过浏览器Inspect Elements进行Ajax攻击

时间:2014-02-03 18:53:48

标签: ajax code-injection elements inspect

假设我有一张桌子,每排有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方法)呢?

2 个答案:

答案 0 :(得分:2)

始终在服务器端验证您的数据!客户可以做任何他想做的事情,你不能对此做任何事......所以只有服务器端可以在最后验证

答案 1 :(得分:1)

您的服务器代码应始终验证用户是否有权执行某项操作,无论是删除,添加还是更新等等。任何会话cookie都通过Ajax调用传输,因此使用它们来检查用户是什么(不要忘记会话cookie也可以被劫持,因此在关键应用程序中将它们绑定到IP地址服务器端)。

编辑:其他方法 您还可以在服务器上生成一次性令牌,并让Ajax调用以及其中一个参数进行传输。在服务器上,您必须跟踪这些令牌,并且只允许使用有效令牌的操作。有效范围是:在相同的IP地址上生成少于x分钟。