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/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 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) 产品介绍CSFramework.WebApi是服务端快速开发框架(后端框架),借助ASP.NET WebAPI底层架构的强大编程能力,封装成为可复用的以及可定制开发的服务端软件模板,CSFramework.WebApi提供可复用的软件架构和开发包,为用户快速轻松搭建基于HTTP协议、HTTPS协议以及支持多种客户端(如:APP、B/S、C/S、微信公众号、微信小程序等)各种跨平台移动终端的服务端应用程序。 服务端应用开发、后端接口开发是软件项目重要工作环节,服务端注重业务逻辑、数据处理和数据分析、算法等方面的设计和服务,前端主要体现在用户体验、界面操作和数据采集方面。前端软件系统和后端服务架构共同搭建跨平台大型数据管理应用系统。 扫一扫加微信:
参考文档:
CSFramework.WebApi时钟定时作业异步处理程序(IThreadHandler接口)实现 CSFramework.WebApi后端框架Token令牌工作机制以及Token刷新原理 CSFramework.WebApi后端服务器框架:客户端调用WebApi接口方式(签名+Token令牌) 基于Web前端用户调用CSFramework.WebApi服务端登录登出接口实现 CSFramework.WebApi开发框架模拟Web用户端登录、调用WebApi接口增删改查数据 【原创】WebApi开发框架:Token生成、Token缓存原理、Token验证、令牌机制与原理 调用WebApi接口POST操作失败Unable to connect to the remote server WebApi框架数据安全、信息安全与接口安全六大机制 CSFramework WebApi开发框架日志管理(系统日志、接口日志) WebApi接口安全之用户认证防篡改数字签名(Data Sign)机制 WebApi开发框架:使用HttpGet方式调用WebAPI接口 数字签名(Data Sign)+存取令牌(Access Token)双重安全请求WebApi接口 Web端使用VUE调用WebApi接口实现用户登录及采用Token方式数据交互 WebApi接口请求两种常用方式:ModelRequestAction/ModelRequestToken 企业级应用WebApi框架, 服务端WebApi接口开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |