当前位置: 首页 > news >正文

山东省建设节能协会网站宠物网站开发文档

山东省建设节能协会网站,宠物网站开发文档,葫芦岛市网站建设,网站正能量不用下载直接进入主页可以吗在网站或API应用中#xff0c;我们为了防止无聊人士或恶意攻击#xff0c;通常希望屏蔽某一IP短时间的内高频率请求。在ASP.NET Core中#xff0c;限制IP请求频率非常简单#xff0c;我们来看看吧。轮子一个.NET Core 目前的生态发展十分迅猛#xff0c;轮子也越来越多。只… 在网站或API应用中我们为了防止无聊人士或恶意攻击通常希望屏蔽某一IP短时间的内高频率请求。在ASP.NET Core中限制IP请求频率非常简单我们来看看吧。轮子一个.NET Core 目前的生态发展十分迅猛轮子也越来越多。只要轮子不爆胎本来就不需要996的.NET开发者就能继续10 5 5这不为了限制IP请求频率我找到了一个不错的轮子AspNetCoreRateLimitGitHub链接https://github.com/stefanprodan/AspNetCoreRateLimit安装轮子我的应用目前一个ASP.NET Core 2.2 MVC的网站我们可以通过NuGet安装这个轮子截至本文它的最新版是3.0.5。Install-Package AspNetCoreRateLimit或 .NET Core CLIdotnet add package AspNetCoreRateLimit修改Startup.cspublic void ConfigureServices(IServiceCollection services){// 需要从appsettings.json中加载配置services.AddOptions();// 存储IP计数器及配置规则services.AddMemoryCache();services.ConfigureIpRateLimitOptions(Configuration.GetSection(IpRateLimiting));services.AddSingletonIIpPolicyStore, MemoryCacheIpPolicyStore();services.AddSingletonIRateLimitCounterStore, MemoryCacheRateLimitCounterStore();// 按照文档这两个是3.x版的breaking change要加上services.AddSingletonIHttpContextAccessor, HttpContextAccessor();services.AddSingletonIRateLimitConfiguration, RateLimitConfiguration();}以及public void Configure(IApplicationBuilder app, IHostingEnvironment env){    // 注意顺序放在 UseMvc 上面    app.UseIpRateLimiting();    app.UseMvc();}配置轮子我的网站有一个URL/fw/{token}我希望限制1分钟内一个IP最多访问30次。但是对于其他URL我并不想做任何限制。[Route(/fw/{token})]public async TaskIActionResult Forward(string token)在 appsettings.json 里加入IpRateLimiting: {  EnableEndpointRateLimiting: true,  StackBlockedRequests: false,  RealIpHeader: X-Real-IP,  ClientIdHeader: X-ClientId,  HttpStatusCode: 429,  GeneralRules: [    {      Endpoint: *:/fw/*,      Period: 1m,      Limit: 30    }  ]}EnableEndpointRateLimiting设置为true意思是IP限制会应用于单个配置的Endpoint上。如果是false的话只会限制所有 * 的规则而不能达到针对单个Endpoint配置的目的。HttpStatusCode设置为429意思是触发限制之后给客户端返回的HTTP状态码。GeneralRules里我只配置了一条针对/fw这URL的限制。其中开头的 *: 表示任何HTTP VERB如GET/POST而结尾的 /* 表示需要考虑/fw后面的参数也就是我MVC Action参数里的route参数。针对不同token会有不同的计数。比如IP为127.0.0.1的用户在1分钟内请求了 /fw/abcd 10次又请求了 /fw/qwer 25次也请求了 /fw/996icu 32次。那么对于该用户/fw/abcd 的机会还剩下20次/fw/qwer 的机会还剩下5次而 /fw/996icu 在第31次请求时会返回429。这里一定要注意对于有参数的URL如果不加结尾的 /* 那么轮子就会爆胎并且把.NET程序员炸进ICU测试轮子我们可以通过浏览器或CRUL测试IP限制。为了方便测试我暂时把1分钟的请求频率限制为3次。第一次请求 https://localhost:5001/fw/某token会发现服务器返回的header里多了3个东西X-Rate-Limit-Limit: 1m表示该限制是1分钟以内X-Rate-Limit-Remaining: 2表示当前还剩2次机会X-Rate-Limit-Reset 表示限制的重置时间而1分钟内第三次访问该URL就会触发限制并且返回429更多高级配置AspNetCoreRateLimit 还有许多更高级的用法。比如针对Client ID而不是IP做限制、白名单、分布式计数器存储、自定义返回内容等等可以参见官网文档https://github.com/stefanprodan/AspNetCoreRateLimit/wiki/IpRateLimitMiddleware#setup
http://www.zqtcl.cn/news/2901/

相关文章:

  • 南京seo建站淘宝搜券的网站怎么做
  • 在社保网站上怎么做员工的退费仿百度百家模板wordpress主题
  • 营销型网站的例子php做企业网站需要多久
  • h5作品网站网站开发人员岗位职责
  • 企业网站制作价格wordpress修改首页模板
  • 做网站需要有公司吗wordpress 去掉文章作者
  • 丹东市网站建设行业类门户网站建设方案
  • 淘宝网站SEO怎么做怎么修改网站标题
  • 支付宝签约网站手机建立网站app
  • 昌吉 建设局 网站163网易企业邮箱格式
  • WordPress站点添加ssl证书刚学完网站开发
  • vps主机可以做几个网站转包网站建设做非法事情
  • 唐山做网站建设公司北京seo技术交流
  • 怎么查看一个网站的后台无锡电子商务网站建设公司
  • 安徽网站公司网站视频直播怎么做
  • 品牌型网站建设哪里好崇信网站建设
  • 专业做网站哪家好婚介做网站的好处
  • 做网页网站怎么样建设通网站有法律
  • 怎么建立网站的步骤东莞网页开发
  • 工厂网站开发西安哪家公司网站做的好
  • 响应式网站用什么做阳江市网络问政
  • 帮别人做钓鱼网站犯法吗深圳市建设股份有限公司
  • 中国建设银行官网站招聘频道唐山网站建设外包公司
  • 上海做网站的公司有哪些wordpress+jetpack插件
  • 临沂河东区建设局网站上海网站建设永灿14年品牌
  • 如何查看网站的外链哈尔滨网站建设步骤
  • 做网站和做app哪个容易霸州网站制作
  • 美橙西安网站备案拍照有限公司和股份公司区别
  • 青岛seo公司网站做网站联盟要多少钱
  • 中国优秀设计网站有哪些内容商业网站图片