我目前正在为第三方软件发现的漏洞应用安全修复程序。这就是问题(经常被误用:HTTP 方法覆盖漏洞)。
该软件的请求类似于:
POST /Home/ViewProfile HTTP/1.1
Referer: https://somesite.com/Home/ViewProfile?qrystr=blahblah
[...]
X-HTTP-METHOD: PUT
X-HTTP-Method-Override: PUT
X-METHOD-OVERRIDE: PUT
[...]
回应是:
HTTP/1.1 200 OK
[...]
Web 应用程序不是 RESTful API,它只是一个只有 GET 和 POST 操作的 ASP.NET MVC 站点。
我有几个问题:
- 考虑到应用程序的类型,这是误报吗?
- 默认情况下,ASP.NET 是否对这些标头 X-HTTP-Method、X-HTTP-Method-Override、X-METHOD-OVERRIDE 做任何事情,如果没有明确告知这样做,例如在本例中?
- 关于上面的第一个链接问题,根据我的情况,如果它们是必要/适用的,那么实现推荐的补救措施的最佳方法是什么:
“确保只允许所需的标头,并且正确配置了允许的标头。 "
和
“确保没有实施变通方法来绕过用户代理、框架或 Web 服务器实施的安全措施。”
需要注意的另一件事是我无权修改 IIS 设置,但我可以修改 Web.Config。