如何在ASP.NET中阻止Http方法

3okqufwl  于 2022-12-20  发布在  .NET
关注(0)|答案(1)|浏览(207)

作为安全修复的一部分,我们需要禁用ASPNET核心Web应用程序中除POST、GET和Head之外的HTTP方法。我们如何禁用ASPNET核心API中的HTTP OPTIONS方法?允许3种方法POST、GET和Head。如何阻止中间件中未使用的所有其他方法,如DELETE、TRACE、PATCH等。需要返回错误代码405 =方法不允许。当前抛出错误500,这是内部服务器错误
我的密码。

app.Use(async (context, next) =>
            {
                if (context.Request.Method=="TRACE")
                {
                    context.Response.StatusCode = 405;
                    return; 
                }
                await next.Invoke();
            });

如何在ASP.NET中阻止Http方法

axr492tv

axr492tv1#

您可以尝试如下:

app.MapWhen(x => x.Request.Method == "somemethod",
                y => y.Use(async(context,next)=>
                {
                    context.Response.StatusCode = 405;
                    await context.Response.WriteAsync("Method Not Allowed");
                }
            ));

结果:

相关问题