该应用程序是一个 ASP.NET MVC Web 应用程序,通过 Chrome 浏览器访问,请求标头中没有来源。上面的路径似乎是 ASP.NET MVC Web 表单中引用的资源,它没有来源,但 Web 检查工具需要它。
请查找添加的代码以检查 Origin 是否存在
public class OriginValidationMiddleware : OwinMiddleware
{
public OriginValidationMiddleware(OwinMiddleware next)
: base(next)
{
}
public override async Task Invoke(IOwinContext context)
{
// Retrieve the Origin header from the request
var origin = context.Request.Headers.Get("Origin");
// Extract the request URL
var requestUrl = context.Request.Uri;
var requestHost = requestUrl.GetLeftPart(UriPartial.Authority);
// Validate the Origin header
if (origin == null || !origin.Equals(requestHost, StringComparison.OrdinalIgnoreCase))
{
// If the origin is not allowed, return a forbidden status
context.Response.StatusCode = 403;
context.Response.ReasonPhrase = "Forbidden: Invalid Origin";
return;
}
// Call the next middleware in the pipeline
await Next.Invoke(context);
}
}
来自 Chrome 浏览器的所有页面的 MVC Web 请求在标头中没有来源,因此所有请求都被阻止。
如果我想添加来源,可以对所有对 ASP.NET MVC 的请求进行添加。
最后,在请求的开始,中间件将添加origin并再次检查irgin是否有意义。
我应该找到上述路径的引用位置并在那里添加原点还是根据路径将其添加到请求的开头。
请告知我在这种情况下可以做什么。
ASP.NET MVC Web 应用程序请求在请求标头中没有来源,并被 WebInpect 工具标识为安全漏洞
下载声明:
本站所有软件和资料均为软件作者提供或网友推荐发布而来,仅供学习和研究使用,不得用于任何商业用途。如本站不慎侵犯你的版权请联系我,我将及时处理,并撤下相关内容!