阻止直接访问url,只允许系统访问
本文关键字:访问 许系统 系统 url | 更新日期: 2023-09-27 18:17:12
我想阻止除了请求图像的iis用户之外的所有人访问url。
我有:www.myurl.com/somedirectory/myfile.ashx
我希望只有我的请求从后面的代码能够访问这个文件,而不是用户/机器人/非客户端谁可以手动访问该文件的url。
需要考虑服务器是负载均衡的,我不确定这是否会导致问题。
我该怎么做呢?
请求服务端:
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(imageUrl);
httpRequest.Method = "GET";
httpRequest.UserAgent = "MobileQ.NET";
httpRequest.ContentType = "image/png";
response = httpRequest.GetResponse().GetResponseStream();
如果请求来自localhost
,您可以检查您的myfile.ashx
:
string client = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if(client == "localhost" || client == "127.0.0.1" || client == "::1")
//DoWork
else
{
HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.Forbidden;
return;
}
IIS7内置了请求过滤功能,如果您使用的是该版本或更高版本,当然可以帮助您
http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering