8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

ASP.NET MVC Web 应用程序请求在请求标头中没有来源,并被 WebInpect 工具标识为安全漏洞

jega 2月前

58 0

Web Inspect 工具在 ASP.NET MVC Web 应用程序的某些路径上发现了安全漏洞,如下所示:/Content//Content/themes/base/images//Content/themes//Content/Images//profiler/results/A...

Web 检查工具在 ASP.NET MVC Web 应用上的某些路径上发现了安全漏洞,如下所示:

/Content/
/Content/themes/base/images/
/Content/themes/
/Content/Images/
/profiler/results
/Account/Login
/Error/LogJavaScriptError/
/Content/themes/base/
/Content/Profile/

该应用程序是一个 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是否有意义。

我应该找到上述路径的引用位置并在那里添加原点还是根据路径将其添加到请求的开头。

请告知我在这种情况下可以做什么。

帖子版权声明 1、本帖标题:ASP.NET MVC Web 应用程序请求在请求标头中没有来源,并被 WebInpect 工具标识为安全漏洞
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由jega在本站《asp.net-mvc》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 根据 Owasp 标准 :

    如果 Origin 标题存在,请验证其值是否与目标来源匹配。

    你已经这样做了,但它还说:

    如果不存在 Origin 标头,请验证 Referer 标头中的主机名是否与目标源匹配。

    因此,您可以将其添加到代码中,以便在没有 Origin 标头的情况下通过验证。但问题仍然存在,为什么缺少 Origin。文档建议:

    与 不同 Referer Origin 标头将出现在源自 HTTPS URL 的 HTTP 请求中。

  • 添加上述代码后,由于从 Chrome 浏览器到 MVC Web App 的请求来源为空,因此始终显示“禁止访问:来源无效”。因此我无法添加该代码。我的请求的标头中没有引用者。

  • 在这种情况下,它会说:“如果这两个标头都不存在,您可以接受或阻止该请求。我们建议阻止。或者,您可能希望记录所有此类实例,监视它们的用例/行为,然后仅在您获得足够的信心后才开始阻止请求。\'

  • 由于它不是从外部域调用的,也不是 Web API,因此没有来源。这只是一个可以通过浏览器访问的 MVC Web 应用程序。因此请求标头中没有来源。我们需要允许最终用户使用应用程序。但 Web 检查存在安全漏洞,我们试图避免该问题。在这方面请提供建议。

  • 当我请求登录页面时,请求标头没有来源,但在提交时,来源设置为 \'null\'。如何设置以及如何避免这种情况?

返回
作者最近主题: