WebApi接口安全機制:API接口限流防止惡意訪問 ThrottlingHandler消息處理機制


WebApi接口安全機制:API接口限流防止惡意訪問 ThrottlingHandler消息處理機制
 
文章介紹
 
爲了防止網站意外暴增的流量比如活動、秒殺、攻擊等,導致整個系統癱瘓,在前後端接口服務處進行流量限制是非常有必要的。本篇主要介紹下Net限流框架WebApiThrottle的使用。
 
WebApiThrottle是一個專門爲webApi限制請求頻率而設計的,支持寄宿OWIN上的中間件的限制過濾。服務端接口可以基於客戶端請求IP地址、客戶端請求key、及請求路由去限制webapi接口的訪問頻率。
 
首先在VS內使用nuget搜索安裝WebApiThrottle。
 
Nuget地址:
 
 
WebApiThrottle支持自定義配置各種限流策略。可以根據不同場景配置多個不同的限制,比如授權某個IP每秒、每分鐘、每小時、每天、每週的最大調用次數。 這些限制策略可以配置在所有請求上,也可以單獨給每個API接口去配置。
 
 
限制流量消息處理機制:
 
C# Code:
 
/// <summary>
/// 添加接口訪問限制流量消息處理機制
/// </summary>
/// <param name="config"></param>
public static void Set(HttpConfiguration config)
{
  //ThrottlingHandler完整使用手冊: http://www.cnblogs.com/mushroom/p/4659200.html
   ThrottlingHandler throttling = new ThrottlingHandler()
  {
    Policy = new ThrottlePolicy(perSecond: 2, perMinute: 60, perHour: 600, perDay: 1500)
    {
      //限制來自同IP請求的最大次數。如果在一分鐘內,同樣IP的客戶端分別調用api/values和api/values/1兩個接口, 那麼調用api/values/1的請求會被拒絕掉。
       IpThrottling = true,
      
      // 如果配置了端點限流,同一秒內你也訪問api/values/1了,請求將不會被拒絕,因爲它們走的是不同的路由
       EndpointThrottling = true
      },
      Repository = new MemoryCacheRepository()
      };
      
      config.MessageHandlers.Add(throttling);//限流機制,消息處理器
       }
 
 
添加消息處理機制:
 
C# Code:
 
public static void ConfigurationTest(IAppBuilder appBuilder)
{
  //加載WebApi服務器配置信息
   HttpConfiguration config = new HttpConfiguration();
  WebApiMessagesConfig.Set(config);//消息處理機制
  
  //使用配置
   appBuilder.UseWebApi(config);
  appBuilder.UseStageMarker(PipelineStage.PostAcquireState);
}

 


CSFramework.WebApi安全機制
 
 
CSFramework.WebApi安全機制
 
 
CSFramework.WebApi系統安全保障機制由以下九個部分組成: 
 
1.User - 用戶賬號:通過用戶賬號和密碼確保有效訪問,系統支持用戶賬號、手機號、郵箱登錄。
2.Token - 令牌機制:通過令牌機制確保有效訪問。用戶登錄成功,系統自動分配隨機令牌編號。
3.ApiKey - 開發者賬號:WebApi接口常用安全機制,使用公鑰+私鑰加密方式,確保系統安全。
4.Data Sign - 數據簽名:WebApi接口常用安全機制,使用公鑰+私鑰加密方式,確保系統安全。
5.Blacklist - 黑名單:針對黑名單用戶限制訪問或操作,此功能可配置使用。
6.Throttle - 限流控制:有效避免頻繁訪問、惡意訪問WebApi接口,此功能可配置使用。
7.ApiLog - 接口訪問日誌:針對任何Http請求,服務端會記錄接口訪問記錄,此功能可配置使用。
8.Login Log - 系統登錄日誌:記錄用戶登入或登出系統的信息。
9.數據加密/解密:提供CryptoHelper工具類,以及4種對稱加密工具。
 

 
 

ASP.NET WebApi快速開發框架|APP後端框架-標準版V1.0

 
適用開發 適用開發:快速搭建APP、B/S、C/S、微信小程序、公衆號、Web站點等後端應用服務程序。
運行平臺 運行平臺:Windows + .NET Framework 4.5
開發工具 開發工具:Visual Studio 2015+,C#語言
數據庫 數據庫:Microsoft SQLServer 2008R2+(支持多數據庫:Oracle/MySql)
 
 
ASP.NET WebApi快速開發框架|MVC框架|APP微信小程序後端框架|服務端框架-標準版V1.0
 
 

 產品介紹


    CSFramework.WebApi是服務端快速開發框架(後端框架),藉助ASP.NET WebAPI底層架構的強大編程能力,封裝成爲可複用的以及可定製開發的服務端軟件模板,CSFramework.WebApi提供可複用的軟件架構和開發包,爲用戶快速輕鬆搭建基於HTTP協議、HTTPS協議以及支持多種客戶端(如:APP、B/S、C/S、微信公衆號、微信小程序等)各種跨平臺移動終端的服務端應用程序。 

    服務端應用開發、後端接口開發是軟件項目重要工作環節,服務端注重業務邏輯、數據處理和數據分析、算法等方面的設計和服務,前端主要體現在用戶體驗、界面操作和數據採集方面。前端軟件系統和後端服務架構共同搭建跨平臺大型數據管理應用系統。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章