Asp.net Core 如何設定黑白名單(路由限制)
阿新 • • 發佈:2021-08-23
在原有的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.GetSec客棧tion("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.on/appsettings.Devolopment.json檔案中新增以下配置
{ "Logging": { "LogLevel": { "Default": "Information","Microsoft": "Warning","Microsoft.Hosting.Lifetime": "Information" } },//防火牆過濾這型別的訪問 "UrlBlackList": [ { "Url": "{resource}.axd/{*pathInfo}","Method": "All" } ] }
這樣,我們伺服器上的.axd的就不會被請求到
www.cppcns.com到此這篇關於Asp.net Core 如何設定黑白名單(路由限制)的文章就介紹到這了,更多相關Asp.net Core設定路由黑白名單 內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!