【问题标题】:unable to get useUnsafeHeaderParsing to work无法让 useUnsafeHeaderParsing 工作
【发布时间】:2014-07-16 15:22:23
【问题描述】:

我有一个位于 Incapsula Web App Firewall 后面的服务器,它会更改发送到 IIS 的标头。当我执行特定请求时,我从 IIS 收到以下错误:服务器违反了协议。 Section=ResponseHeader Detail=CR 后面必须跟 LF。这种行为也在:http://www.dragonblogger.com/fix-live-writer-protocol-violation-error-cr-lf/

根据此页面http://msdn.microsoft.com/en-us/library/65ha8tzh%28v=vs.80%29.aspx,我应该能够通过将 useUnsafeHeaderParsing 设置为 true 来接受这些标头。因此,我尝试将其添加到应处理特定请求的虚拟目录中的 web.config 中:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.net>
        <settings>
            <httpWebRequest useUnsafeHeaderParsing="true" />
        </settings>
    </system.net>
</configuration>

重新启动 IIS 后它仍然无法工作。我也尝试将它添加到 c:\windows\Microsoft.NET\framework\config\web.conf 但它也不起作用。

有人知道我错过了什么吗?

谢谢!

【问题讨论】:

    标签: asp.net iis iis-7


    【解决方案1】:

    在尝试将 Azure Application Insights 连接到我们的一个网站(也受 Incapsula“保护”)时,我们遇到了相同的响应标头违规。将 useUnsafeHeaderParsing 设置为 true 也不起作用。

    咨询 Incapsula 支持台帮助了我们:Incapsula 似乎在响应中添加了一个不规则的 cookie,以将访问者识别为机器人或人类访问者。在响应中添加不规则的 cookie 可能是响应标头违规的原因。 Incapsula 也有 Javascript 分类,所以我们让他们禁用不规则 cookie 并启用 Javascript 分类。

    这就是我们解决违规错误的方法。

    【讨论】:

    • 嗨,巴斯,感谢您的回答。与此同时,我们停止使用 Incapsula,所以我无法确认这是否能解决问题。但是,我再次尝试联系他们的支持,他们提出了类似的建议,所以我想这是正确的方法。不过,我希望 Incapsula 能够开箱即用地支持 IIS。
    猜你喜欢
    • 1970-01-01
    • 2020-02-23
    • 2014-12-26
    • 2017-12-22
    • 2012-02-28
    • 2015-12-01
    • 2012-01-29
    • 2014-12-16
    • 2013-04-19
    相关资源
    最近更新 更多