后端 .net7 Minimal API 限流中间件(微信小程序无师自通十)

news/2025/1/15 18:03:56/

        我的微信小程序使用.net7 Minimal API 作为后端,当服务器摆上公网后,可以观察到很多的攻击行为和暴力访问。所以,我需要使用微软的限流中间件部署相应的功能在服务器上

关键字:

AddFixedWindowLimiter

using Microsoft.AspNetCore.RateLimiting;

using System.Threading.RateLimiting;

后端 .net7 Minimal API 限流中间件的说明出现在微软ASP.NET Core 7.0的说明中:

ASP.NET Core 中的速率限制中间件 | Microsoft Learn

在文章的末尾,有一个更详细的blog说明:

ASP.NET Core rate limiting middleware in .NET 7 - Maarten Balliauw {blog}

        与其他中间件非常相似,要启用ASP。. NET Core速率限制中间件,您必须将所需的服务添加到服务集合中,然后为所有请求管道启用中间件。让我们添加一个简单的速率限制器,将所有请求限制为每分钟10个,每个经过身份验证的用户名(或主机名,如果未经过身份验证):

var builder = WebApplication.CreateBuilder(args);builder.Services.AddRateLimiter(options =>
{options.GlobalLimiter = PartitionedRateLimiter.Create<HttpContext, string>(httpContext =>RateLimitPartition.GetFixedWindowLimiter(partitionKey: httpContext.User.Identity?.Name ?? httpContext.Request.Headers.Host.ToString(),factory: partition => new FixedWindowRateLimiterOptions{AutoReplenishment = true,PermitLimit = 10,QueueLimit = 0,Window = TimeSpan.FromMinutes(1)}));
});// ...var app = builder.Build();// ...app.UseRouting();
app.UseRateLimiter();app.MapGet("/", () => "Hello World!");app.Run();


http://www.ppmy.cn/news/1027804.html

相关文章

【python】爬取豆瓣电影Top250(附源码)

前言 在网络爬虫的开发过程中&#xff0c;经常会遇到需要处理一些反爬机制的情况。其中之一就是网站对于频繁访问的限制&#xff0c;即IP封禁。为了绕过这种限制&#xff0c;我们可以使用代理IP来动态改变请求的来源IP地址。在本篇博客中&#xff0c;将介绍如何使用代理IP的技术…

STM32入门学习之定时器输入捕获

1.定时器的输入捕获可以用来测量脉冲宽度或者测量频率。输入捕获的原理图如下&#xff1a; 假设定时器是向上计数。在图中&#xff0c;t1~t2之间的便是我们要测量的高电平的时间(脉冲宽度)。首先&#xff0c;设置定时器为上升沿捕获&#xff0c;如此一来&#xff0c;在t1时刻可…

SpringBoot复习(39)Servlet容器的自动配置原理

Servlet容器自动配置类为ServletWebServerFactoryAutoConfiguration 可以看到通过Import注解导入了三个配置类&#xff1a; 通过这个这三个配置类可以看出&#xff0c;它们都使用了ConditionalOnClass注解&#xff0c;当类路径存在tomcat相关的类时&#xff0c;会配置一个T…

Atomic实现:变量的原子操作

文章目录 使用场景核心实现逻辑atomic实现思考参考 使用场景 多个goroutine里面安全访问共享变量 核心实现逻辑 通过系统的CPU指令来保证对变量的原子操作&#xff0c;如i386的LOCK指令 atomic实现 代码主要包含如下功能&#xff0c;实际为三种类型&#xff0c;通用类型Val…

python中range()函数详解(含反序输出)

目录 前言 语法 参数 返回值 示例 反序 前言 range() 函数是 Python 内置的用于生成整数序列的函数。它可以用于 for 循环、列表生成式等场景。下面是 range() 函数的详细说明&#xff1a; 语法 range(stop) range(start, stop[, step]) 参数 start&#xff08;可选…

Spark 3.4.x 对 from_json regexp_replace组合表达式慢问题的解决

背景 在Spark 3.1.1 遇到的 from_json regexp_replace组合表达式慢问题的解决 中其实在spark 3.4.x已经解决了&#xff0c; 具体的解决方法可以见 SPARK-44700&#xff0c; 也就是设置spark.sql.optimizer.collapseProjectAlwaysInline 为 false &#xff08;默认就是false&a…

隐藏挖矿木马rcu_tasked的查杀

0. 目录 1. 前言2. 排查2.1 找出导致问题的进程2.2 定位进程详细信息2.3 阻止进程重启2.4 重启服务器 3. 加固系统4. 其他相关排查手段5. 相关 1. 前言 本来没打算写这篇博客的&#xff0c;因为本身自己对于linux就属于一知半解&#xff0c;但奈何类似的问题遇到了好几次&…

ES索引重建reindex详解

目录 一、使用场景 二、reindex介绍 三、使用手册 1、覆盖更新 2、创建丢失的文档并更新旧版本的文档 3、仅创建丢失的文档 4、冲突处理 5、source中添加查询条件 6、source中包含多个源索引 7、限制处理的记录数 8、从远程ES集群中重建索引 9、提取随机子集 10、…