WebApi接口安全机制:API接口限流防止恶意访问 ThrottlingHandler消息处理机制
WebApi接口安全机制:API接口限流防止恶意访问 ThrottlingHandler消息处理机制
添加消息处理机制:
CSFramework.WebApi安全机制
CSFramework.WebApi是服务端快速开发框架(后端框架),借助ASP.NET WebAPI底层架构的强大编程能力,封装成为可复用的以及可定制开发的服务端软件模板,CSFramework.WebApi提供可复用的软件架构和开发包,为用户快速轻松搭建基于HTTP协议、HTTPS协议以及支持多种客户端(如:APP、B/S、C/S、微信公众号、微信小程序等)各种跨平台移动终端的服务端应用程序。
服务端应用开发、后端接口开发是软件项目重要工作环节,服务端注重业务逻辑、数据处理和数据分析、算法等方面的设计和服务,前端主要体现在用户体验、界面操作和数据采集方面。前端软件系统和后端服务架构共同搭建跨平台大型数据管理应用系统。
文章介绍
为了防止网站意外暴增的流量比如活动、秒杀、攻击等,导致整个系统瘫痪,在前后端接口服务处进行流量限制是非常有必要的。本篇主要介绍下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/S框架网(www.csframework.com) QQ:23404761
/// 添加接口访问限制流量消息处理机制
/// </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/S框架网(www.csframework.com) QQ:23404761
C# Code:
public static void ConfigurationTest(IAppBuilder appBuilder)
{
//加载WebApi服务器配置信息
HttpConfiguration config = new HttpConfiguration();
WebApiMessagesConfig.Set(config);//消息处理机制
//使用配置
appBuilder.UseWebApi(config);
appBuilder.UseStageMarker(PipelineStage.PostAcquireState);
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
{
//加载WebApi服务器配置信息
HttpConfiguration config = new HttpConfiguration();
WebApiMessagesConfig.Set(config);//消息处理机制
//使用配置
appBuilder.UseWebApi(config);
appBuilder.UseStageMarker(PipelineStage.PostAcquireState);
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
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)
运行平台:Windows + .NET Framework 4.5
开发工具:Visual Studio 2015+,C#语言
数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle/MySql)
产品介绍
CSFramework.WebApi是服务端快速开发框架(后端框架),借助ASP.NET WebAPI底层架构的强大编程能力,封装成为可复用的以及可定制开发的服务端软件模板,CSFramework.WebApi提供可复用的软件架构和开发包,为用户快速轻松搭建基于HTTP协议、HTTPS协议以及支持多种客户端(如:APP、B/S、C/S、微信公众号、微信小程序等)各种跨平台移动终端的服务端应用程序。
服务端应用开发、后端接口开发是软件项目重要工作环节,服务端注重业务逻辑、数据处理和数据分析、算法等方面的设计和服务,前端主要体现在用户体验、界面操作和数据采集方面。前端软件系统和后端服务架构共同搭建跨平台大型数据管理应用系统。
扫一扫加微信:
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网