一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - ASP.NET Core利用UrlFirewall對請求進行過濾的方法示例

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

2020-05-26 14:14曉晨Master ASP.NET教程

這篇文章主要給大家介紹了關于ASP.NET Core利用UrlFirewall對請求進行過濾的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一. 前言

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

二.UrlFirewall 介紹

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

三.使用

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

?
1
Install-Package UrlFirewall.AspNetCore

2.配置DI

?
1
2
3
4
5
6
7
8
9
10
11
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中間件的位置必須放在第一個

?
1
2
3
4
5
6
7
8
9
10
11
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
 //Configure url firewall middleware. Top most.
 app.UseUrlFirewall();
 
 if (env.IsDevelopment())
 {
  app.UseDeveloperExceptionPage();
 }
 app.UseMvc();
}

4.配置規則

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
 "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,支持通配符*和?,*表示匹配任意個數任意字符,?表示匹配一個任意字符。Method表示http請求方法,All代表所有,還有Get Post Delete Put。

四.擴展

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

示例:

?
1
2
3
4
5
6
services.AddUrlFirewall(options =>
{
 options.RuleType = UrlFirewallRuleType.Black;
 options.SetRuleList(Configuration.GetSection("UrlBlackList"));
 options.StatusCode = HttpStatusCode.NotFound;
}).AddUrlFirewallValidator<CustomValidator>();

五.地址

源碼和Demo:https://github.com/stulzq/UrlFirewall

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://www.cnblogs.com/stulzq/p/8987632.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 不卡一区二区三区 | 楚乔传第二部免费播放电视连续剧 | av在线亚洲男人的天堂 | 四虎免费影院4hu永久免费 | 色欲麻豆国产福利精品 | 日本欧美强乱视频在线 | 午夜福利试看120秒体验区 | 国产黄频在线观看 | 国产成人综合网亚洲欧美在线 | 操美女 | 特级老女人淫片高清视频 | 国产成人综合手机在线播放 | 特黄特色一级aa毛片免费观看 | 我和寂寞孕妇的性事 | 无码人妻精品一区二区蜜桃在线看 | 香蕉国产人午夜视频在线观看 | 精品国产一区二区在线观看 | 闺蜜的样子小说安沁在线阅读 | 久久国产精品人妻中文 | 青青青青久久国产片免费精品 | 青青色在线观看 | 天堂伊人网 | 成人亚洲精品一区 | 俄罗斯激情性孕妇孕交大全 | 动漫精品午夜在线播放 | 国产成人亚洲精品91专区手机 | 欧美╳bbbb | 国产亚洲精品日韩香蕉网 | 亚洲乱码一二三四区国产 | 波多野结衣178部中文字幕 | 九九99热| 俄罗斯美女破苞 | 青苹果乐园影院在线播放 | 国产精品亚洲片夜色在线 | 青春草在线观看视频 | 国产99热99| 亚洲a视频在线 | 国产高清免费在线 | 香蕉tv亚洲专区在线观看 | 欧美国产日产精品免费视频 | 日本免费在线观看视频 |