Asp.net mvc 如何修复IIS上的HTTP请求走私

Asp.net mvc 如何修复IIS上的HTTP请求走私,asp.net-mvc,http,iis,Asp.net Mvc,Http,Iis,在我的ASP.NET MVC应用程序中,我想解决HTTP请求走私漏洞问题 我认为,如果我阻止具有“Transfer Encoding:chunked”头的请求就足够了。 在IIS管理菜单上,我为此添加了新的请求筛选规则。 然而,这似乎无法解决问题 我编写了一些.NET代码来测试IIS在发送分块内容时是否生成404错误。 当我将传输编码头1次添加到我的测试客户机代码时,我没有收到404,我收到200 httpRequest.Headers.Add("Transfer-Encoding", "chu

在我的ASP.NET MVC应用程序中,我想解决HTTP请求走私漏洞问题

我认为,如果我阻止具有“Transfer Encoding:chunked”头的请求就足够了。 在IIS管理菜单上,我为此添加了新的请求筛选规则。 然而,这似乎无法解决问题

我编写了一些.NET代码来测试IIS在发送分块内容时是否生成404错误。 当我将传输编码头1次添加到我的测试客户机代码时,我没有收到404,我收到200

httpRequest.Headers.Add("Transfer-Encoding", "chunked");
有趣的是,我添加了两次标题(我的意思是复制它),如下所示

过滤规则适用,我收到了预期的404


如何修复它?

几个月后,Microsoft添加了一个补丁,您可以在其中进行修复

  • 单击开始,单击运行,在打开框中键入
    Regedit
    ,然后单击确定
  • 找到并单击以下注册表子项:
    HKEY\U LOCAL\U MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
  • DWORD
    类型值
    disablerequest走私
    设置为以下值之一:
    • 设置为0以禁用筛选器
    • 设置为1以启用过滤器
  • 退出注册表编辑器
  • 重新启动计算机

  • 几个月后,微软添加了一个补丁,您可以在其中使用

  • 单击开始,单击运行,在打开框中键入
    Regedit
    ,然后单击确定
  • 找到并单击以下注册表子项:
    HKEY\U LOCAL\U MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
  • DWORD
    类型值
    disablerequest走私
    设置为以下值之一:
    • 设置为0以禁用筛选器
    • 设置为1以启用过滤器
  • 退出注册表编辑器
  • 重新启动计算机
  • httpRequest.Headers.Add("Transfer-Encoding", "chunked");
    httpRequest.Headers.Add("Transfer-Encoding", "chunked");