框架MvcThrottle的使用

时间:2021-09-12 05:46:47

1)用MvcThrottle你能保护你的网站不受攻击、刷。

2)你可以限制与设置多个不同场景允许的IP,设置 每秒/分/天 允许访问IP。

3)你可以定义限制,来处理所有请求。或者某个Controller、方法的范围。

2.使用

1)首先,请到github上下载框架,里面包括demo。但是demo写得我看不到,读者如果看得懂,建议不用阅读本文。

https://github.com/stefanprodan/MvcThrottle

2)引入MvcThrottle项目、包

如下,我们新建的一个MVC项目WebApplicationIP

3)在FilterConfig类中添加配置

namespace WebApplicationIP { public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { const int secondCount = 5; var throttleFilter = new ThrottlingFilter { //每秒钟最多请求secondCount次,每分钟最多请求secondCount*60次,依次类推 Policy = new ThrottlePolicy( perSecond: secondCount, perMinute: secondCount * 10, perHour: secondCount * 10 * 5, perDay: secondCount * 10 * 5 * 2) { IpThrottling = true }, Repository = new CacheRepository() }; filters.Add(throttleFilter); filters.Add(new HandleErrorAttribute()); } } }

4)在controller的方法设置访问限制

下面是代表用全局的IP访问限制:

[EnableThrottling]

下面是代码这个方法,,每秒最多访问5次,每分钟10次:

[EnableThrottling(PerSecond = 5, PerMinute = 10)]