限制直接访问Ajax请求地址
限制直接访问Ajax请求地址:
有时候有些页面是用ajax请求,而达到无刷新的效果,那我要怎么去限制非法去测试这些请求地址的请求呢
就是:
有些人恶意的直接在浏览器输入地址去请求
[最优解释]
public static bool AjaxRequest(HttpRequestBase Request)
{
string sheader = Request.Headers["X-Requested-With"];
bool isAjaxRequest = (sheader != null && sheader == "XMLHttpRequest") ? true : false;
if (isAjaxRequest) //判断请求是否为ajax
return true;
else
return false;
}
[其他解释]
判断来路
Request.UrlReferrer 不为空 且 包含你的网站域名
[其他解释]
这个仅能限制非ajax请求. 如果是恶意的 ajax请求.这个还是达不到效果的. 但是限制地址栏访问时OK的
[其他解释]
直接在地址栏访问 。domain 不会变。 判断这有用吗?
[其他解释]
?
直接在地址栏访问,来路就是空,
ajax请求 判断来路页面在你的域名下。
domain怎么会变?
[其他解释]
就像这样的。
[其他解释]
其实这个以前也是俺做的,但是不知道怎么做的,忘了。
[其他解释]
我给你的代码可以实现哦。
return false 的时候 提示就好
[其他解释]
if(Request.UrlReferrer!=null && Request.UrlReferrer.Host==Request.Url.Host)
{
...
}
[其他解释]
public static bool AjaxRequest()
{
string sheader = Request.Headers["X-Requested-With"];
bool isAjaxRequest = (sheader != null && sheader == "XMLHttpRequest") ? true : false;
if (isAjaxRequest) //判断请求是否为ajax
return true;
else
return false;
}
public void aaa()
{
if(!AjaxRequest())
response.write("非法操作!");
}