限制直接访问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;