我开始怀疑你必须使用JSONP。没有方法保护回调,它基本上是注入一个
<script>
并执行代码。仅供参考:
jQuery JSONP Security
我将从以下内容开始:
jsonp的工作方式和
<Script src='whatever'> </script>
现在,运用你的想象力,陷阱是什么。
考虑一下,它基本上与您的
.getJSON()
:
$.ajax({
url: MACHINE + "/DailyFoundServlet",
dataType: "jsonp",
data: {
'csfin': sDateFoundArray [i][CODE],
'found': 1,
'public': true
},
jsonp: "callback",
sucess: function(data) {
sDateFoundArray [i][FOUND]=data;
sDateFoundArray [i][NSER]++;
}
});
pubblic=true
我不确定这是打字错误还是故意的。我以为是打字错误。上述代码仍然易受XSS攻击。
正如我提到的,如果可以的话,我建议使用POST作为一种更安全的选择。这看起来像:
$.ajax({
url: MACHINE + "/DailyFoundServlet",
dataType: "json",
data: {
'csfin': sDateFoundArray [i][CODE],
'found': 1,
'public': true
},
method: "post",
sucess: function(data) {
sDateFoundArray [i][FOUND]=data;
sDateFoundArray [i][NSER]++;
}
});
这段代码处理返回的数据,需要JSON数据。如果有人试图发回其他数据,如脚本块,它将不会被解释,函数将失败。最好检查一下
data
对于
length
sucess: function(data) {
if(data.length != 0){
sDateFoundArray [i][FOUND]=data;
sDateFoundArray [i][NSER]++;
}
}