阻止直接访问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();

阻止直接访问url,只允许系统访问

如果请求来自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