????????我的微信小程序使用.net7 Minimal API 作為后端,當(dāng)服務(wù)器擺上公網(wǎng)后,可以觀察到很多的攻擊行為和暴力訪問。所以,我需要使用微軟的限流中間件部署相應(yīng)的功能在服務(wù)器上
關(guān)鍵字:
AddFixedWindowLimiter
using Microsoft.AspNetCore.RateLimiting;
using System.Threading.RateLimiting;
后端 .net7 Minimal API 限流中間件的說明出現(xiàn)在微軟ASP.NET Core 7.0的說明中:
ASP.NET Core 中的速率限制中間件 | Microsoft Learn
在文章的末尾,有一個(gè)更詳細(xì)的blog說明:
ASP.NET Core rate limiting middleware in .NET 7 - Maarten Balliauw {blog}文章來源:http://www.zghlxwxcb.cn/news/detail-651570.html
????????與其他中間件非常相似,要啟用ASP。. NET Core速率限制中間件,您必須將所需的服務(wù)添加到服務(wù)集合中,然后為所有請求管道啟用中間件。讓我們添加一個(gè)簡單的速率限制器,將所有請求限制為每分鐘10個(gè),每個(gè)經(jīng)過身份驗(yàn)證的用戶名(或主機(jī)名,如果未經(jīng)過身份驗(yàn)證):文章來源地址http://www.zghlxwxcb.cn/news/detail-651570.html
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();
到了這里,關(guān)于后端 .net7 Minimal API 限流中間件(微信小程序無師自通十)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!