有一些IP地址会产生大量异常,这些异常可以明确地归类为“可疑行为”。我想阻止这些IP,但别管其他一切。
我在网络下找到 IP限制,但似乎您可以只列入白名单,而不是黑名单。
答案 0 :(得分:2)
我做过两种方式:
使用web.config中的<ipSecurity>
标记
这不是特定于Azure的,但可以在Azure Web App中使用。好处是你不必重新部署。缺点是触摸web.config将导致您的Web应用程序被回收。这对您来说可能是也可能不是问题。
以下是一个例子:
<system.webServer>
<security>
<ipSecurity>
<add ipAddress="5.124.39.210" />
</ipSecurity>
</security>
</system.webServer>
这将阻止IP地址为5.124.39.210的火鸡访问您的站点。您甚至可以选择为受限制的IP(401,403,404)发回的HTTP响应代码。
有关详细信息,请see here。
自己动手
如上所述,关于进入web.config路由的一个坏处是,当你的web.config被修改时,它需要重启应用程序。我还保留了从数据库表中定期读取的受限IP地址的内存缓存。根据我的HttpApplication子类的Application_BeginRequest方法中的黑名单检查传入请求。
它有点像:
protected void Application_BeginRequest(object sender, EventArgs e)
{
//our own singleton that caches blacklisted IP addresses
var webSecurity = new CustomWebSecurity();
var clientIp = Request.UserHostAddress;
if (webSecurity.IsInBlackList(clientIp))
{
Response.Clear();
Response.StatusCode = 403;
Response.Status = "403 Forbidden";
Response.End();
return;
}
}