我有 default.asp,它通过 ajax 与 3 个不同的 *.asp 联系。我的问题是,如果人们试图以 url 的形式打开这些页面,是否有人试图在不访问 default.asp 的情况下执行这些 *.asp 页面。http://sample.com/ajax1.asp?get=foo是一个示例,如何防止这种访问我的 ajax 页面。
问问题
459 次
2 回答
1
您可以检测调用是否是 AJAX 请求来寻找HTTP_X-Requested-With
标头,但即使您可以检测到 AJAX 调用,您也应该对所有请求进行身份验证,因为恶意用户可以轻松欺骗所有标头。
检测 AJAX 标头:
If Request.ServerVariables("HTTP_X-Requested-With") = "XMLHttpRequest" Then
''do stuff
Else
于 2012-05-22T22:12:35.167 回答
0
解决方案是将粗线添加到 ajax 请求中。
function callit()
{
if(window.XMLHttpRequest){xmlhttp=new XMLHttpRequest();}else{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4&&xmlhttp.status==200){document.getElementById('alp').innerHTML=xmlhttp.responseText;}}
xmlhttp.open("get", "call.asp", true);
**xmlhttp.setRequestHeader("X-Requested-With","XMLHttpRequest");**
xmlhttp.send();
}
于 2012-05-23T23:06:43.360 回答