最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET Core利用UrlFirewall對請求進行過濾的方法示例

 更新時間:2018年05月06日 14:32:20   作者:曉晨Master  
這篇文章主要給大家介紹了關(guān)于ASP.NET Core利用UrlFirewall對請求進行過濾的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一. 前言

UrlFirewall 是一個開源、輕便的對http請求進行過濾的中間件,可使用在webapi或者網(wǎng)關(guān)(比如Ocelot),由我本人編寫,并且開源在github:https://github.com/stulzq/UrlFirewall  (本地下載)

二.UrlFirewall 介紹

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

三.使用

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

Install-Package UrlFirewall.AspNetCore

2.配置DI

public void ConfigureServices(IServiceCollection services)
{
 services.AddUrlFirewall(options =>
 {
  options.RuleType = UrlFirewallRuleType.Black;
  options.SetRuleList(Configuration.GetSection("UrlBlackList"));
  options.StatusCode = HttpStatusCode.NotFound;
 });
 services.AddMvc();
 //...
}

3.配置中間件

UrlFirewall中間件的位置必須放在第一個

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
 //Configure url firewall middleware. Top most.
 app.UseUrlFirewall();

 if (env.IsDevelopment())
 {
  app.UseDeveloperExceptionPage();
 }
 app.UseMvc();
}

4.配置規(guī)則

根據(jù)步驟2,使用的Section名稱·UrlBlackList·我們在appsettings.json/appsettings.Devolopment.json文件中添加以下配置;

{
 "Logging": {
 "IncludeScopes": false,
 "LogLevel": {
  "Default": "Debug",
  "System": "Information",
  "Microsoft": "Information"
 }
 },
 "UrlBlackList": [
 {
  "Url": "/api/cart/add",
  "Method": "All"
 },
 {
  "Url": "/api/cart/del",
  "Method": "Post"
 },
 {
  "Url": "/api/cart/list",
  "Method": "Get"
 },
 {
  "Url": "/api/product/*",
  "Method": "All"
 }
 ]
}

Url 字段表示要攔截的http請求url,支持通配符*和?,*表示匹配任意個數(shù)任意字符,?表示匹配一個任意字符。Method表示http請求方法,All代表所有,還有Get Post Delete Put。

四.擴展

如果你想要實現(xiàn)自己的驗證邏輯,或者從數(shù)據(jù)庫、Redis緩存等介質(zhì)查詢、獲取數(shù)據(jù)來進行驗證;你可以實現(xiàn)IUrlFirewallValidator接口,然后調(diào)用AddUrlFirewallValidator方法替換默認實現(xiàn)即可。

示例:

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

五.地址

源碼和Demo:https://github.com/stulzq/UrlFirewall (本地下載)

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論

张家港市| 青铜峡市| 通道| 奉贤区| 双牌县| 南溪县| 祁东县| 二连浩特市| 廊坊市| 宜州市| 济阳县| 东辽县| 乌拉特中旗| 南川市| 黄浦区| 响水县| 屯门区| 临泽县| 固始县| 东港市| 新闻| 霍邱县| 临泽县| 乌拉特后旗| 孟村| 吉首市| 奉节县| 延庆县| 娱乐| 乐亭县| 顺平县| 南乐县| 湖北省| 上林县| 沂水县| 夏邑县| 含山县| 宿州市| 永兴县| 祁东县| 靖宇县|