Azure网站上的黑名单特定IP

时间:2017-12-27 20:51:19

标签: azure web ip blacklist

有一些IP地址会产生大量异常,这些异常可以明确地归类为“可疑行为”。我想阻止这些IP,但别管其他一切。

  • 使用Azure网站执行此操作的最简单方法是什么?
  • 最好不要使用重新部署。

我在网络下找到 IP限制,但似乎您可以只列入白名单,而不是黑名单。

1 个答案:

答案 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;
       }
    }