• <button id="eiyoe"><acronym id="eiyoe"></acronym></button>
    <em id="eiyoe"></em>

  • <rp id="eiyoe"><acronym id="eiyoe"><input id="eiyoe"></input></acronym></rp>
      查看: 150|回復: 0
      上一主題 下一主題

      Asp.net Core 如何設置黑白名單(路由限制)

      79910

      主題

      0

      好友

      積分

      離線 發信

      跳轉到指定樓層
      樓主
      發表于 2021-09-17 10:50 | 只看該作者 | 倒序瀏覽

      在原有的AspnetMvc中我們會使用到路由訪問限制,在AppStart/RouteConfig.cs中寫上如下:

      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
      

      但是在aspnet core mvc已經不存在RouteConfig.cs的這個給文件和這種寫法,我們該如何在Aspnet core mvc中實現相同效果呢?

      這里我們需要使用到的中間件時UrlFirewall

      1)說明:

      UrlFirewall 是一個開源、輕便的對http請求進行過濾的中間件,可使用在webapi或者網關

      2)介紹:

      UrlFirewall 是一款http請求過濾中間件,可以和網關(Ocelot)搭配,實現屏蔽外網訪問內部接口,只讓內部接口之間相互通訊,而不暴露到外部。它支持黑名單模式和白名單模式,支持自定義http請求響應代碼。具有良好的擴展性,可自己實現驗證邏輯,從數據庫或者Redis緩存等介質實現對規則的檢索

      3)使用:

      1],從Nuget添加組件到你的ASP.NET Core項目

      Install-Package UrlFirewall.AspNetCore
      

      2],配置DI在startup.cs的ConfigureServices

      services.AddUrlFirewall(options =>
                  {
                      options.RuleType = UrlFirewallRuleType.Black;
                      options.SetRuleList(Configuration.GetSection("UrlBlackList"));
                      options.StatusCode = HttpStatusCode.NotFound;
                  });
      

      3],配置中間件在startup.cs 中的Configure

      app.UseUrlFirewall();//啟用防火墻 開啟黑名單請求路徑
      if (env.IsDevelopment())
                  {
                      app.UseDeveloperExceptionPage();
                      //HttpContext
                      app.UseStaticHttpContext();
                  }
                  else
                  {
                      app.UseExceptionHandler("/Home/Error");
                      app.UseHsts();
                  }
      

      4],根絕2中的Configuration.GetSection("UrlBlackList")需要在使用的Section名稱·UrlBlackList·我們在appsettings.json/appsettings.Devolopment.json文件中添加以下配置

      {
      "Logging": {
          "LogLevel": {
            "Default": "Information",
            "Microsoft": "Warning",
            "Microsoft.Hosting.Lifetime": "Information"
          }
        },
        //防火墻過濾這類型的訪問
        "UrlBlackList": [
          {
            "Url": "{resource}.axd/{*pathInfo}",
            "Method": "All"
          }
        ]
      }
      

      這樣,我們服務器上的.axd的就不會被請求到

      到此這篇關于Asp.net Core 如何設置黑白名單(路由限制)的文章就介紹到這了,更多相關Asp.net Core設置路由黑白名單 內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

      來源:http://www.jb51.net/article/220351.htm