我想知道下面的GET请求是否来自HTML文件和javascript文件,是否容易受到AJAX劫持/JavaScript劫持的攻击?
AJAX劫持:http://haacked.com/archive/2009/06/25/json-hijacking.aspx/ JavaScript劫持:http://www.net-security.org/dl/articles/JavaScript_Hijacking.pdf
1)
var req = new XMLHttpRequest();
req.open("GET", queryUrl, false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
if (this.readyState == 4) {
if (this.status == 200) {
//do something }
}
}
req.send();2)
var req = new XMLHttpRequest();
req.open("GET", encodeURI(ODataPath() + type + "Var1"+ Value1+"), true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
req.onreadystatechange = null;
// Do Something
};
req.send();
};发布于 2015-09-22 18:56:06
这只是非常旧的浏览器--例如火狐3中的一个问题。如果您的客户端代码没有删除任何“不可解析的浏览”,那么服务器端可能容易受到攻击。漏洞的另一个要求是,JSON可以通过GET检索。从您的问题中,我们已经可以看到这些是GET请求,所以您应该添加一个不可解析的遍历,或者进行一些检查,以确保它们在现代浏览器上。
另一种选择是什么也不做--如果这种旧浏览器的使用不常见的话,这可能不会对你构成风险。
发布于 2015-09-22 17:01:09
您的调用是可以的,只要它们不像源中提到的那样发送带有敏感信息的JSON数组。也许您可以使用正常的HTTPS请求来代替该信息。
https://security.stackexchange.com/questions/100893
复制相似问题