如何防止修改AJAX请求

时间:2018-01-03 22:42:17

标签: javascript ajax security

有没有人知道如何防止AJAX请求劫持/修改?

由于javascript在网站源代码中是公开的,是否可以操作发送的数据,f.i ?.

$.ajax({
    url: endpoint/url,
    data: {
        id: 523658,
        fragile_data: 'it should stay constant'
    }
});

2 个答案:

答案 0 :(得分:3)

由于您无法控制客户端, 从不信任客户端
您可以(并且必须)做的就是验证服务器端的数据,并可能验证用户身份。

答案 1 :(得分:0)

没有办法

作为标准安全原则的一部分,您应始终假设来自客户端的任何信息都不可信任。必须首先通过过滤器并检查以确保它符合特定规格。例如,如果您要求提供电子邮件地址和密码,则应在发送之前始终对字段进行编码,然后检查字段服务器端以确保其实际符合电子邮件地址语法。你还应修剪任何额外的角色,这样你就不会成为一个经典失误的受害者,如

test.user@email.com"; DROP TABLE Users; --

这同样适用于AJAX请求。始终清理您的输入并始终检查返回的任何ID是否合法(并且如果它们应该可能与查找项匹配)。

如果你的时间不够,你可以获得一些免费和开源的外部插件或框架,以帮助防止对客户端验证器等字段的攻击(确保电子邮件是在提交之前的字段中等,以及检查服务器端的项目以防止XSS和SQLi攻击等。这些插件不会很完美,但他们会为您完成大部分工作,并允许您加快处理速度