在我的HTTP应用程序中,我想解决ASP.NET请求走私漏洞问题。
我想如果我阻止带有"Transfer-Encoding: chunked“头的请求就足够了。在IIS管理菜单上,我为此添加了新的请求过滤规则。然而,这似乎并没有解决问题。
我编写了一些.NET代码来测试IIS在发送分块内容时是否会生成404错误。如下所示,当我将传输编码报头1次添加到我的测试客户机代码中时,我没有收到404,我收到了200。
httpRequest.Headers.Add("Transfer-Encoding", "chunked");有趣的是,我将标题添加了两次(我的意思是复制它)为
httpRequest.Headers.Add("Transfer-Encoding", "chunked");
httpRequest.Headers.Add("Transfer-Encoding", "chunked");应用了过滤规则,我收到了404,正如我所预期的那样。
我怎么才能修复它呢?
发布于 2021-02-25 04:06:28
几个月后,Microsoft添加了一个补丁,您可以在其中使用注册表项禁用请求走私..。
Regedit在“打开”框中,然后单击“确定”。HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\ParametersDWORD类型值DisableRequestSmuggling设置为以下其中一项:4. 退出注册表编辑器。
5. 重新启动计算机。
https://stackoverflow.com/questions/60704397
复制相似问题