IIS删除图像的nosniff标头

时间:2018-07-30 21:01:54

标签: iis

我有一个API可以向我返回图像,例如:

/ api / products / images / 233->这将为我返回233.jpg图片

但是我的IIS有一条将X-Content-Type-Options标头添加到安全请求的规则,但是这会破坏Internet Explorer上的图像,因此当端点/ products /时,我需要一种删除此规则的方法仅在没有端点的情况下调用images /或添加标题的方法。

我尝试将其用于Custom Headers

但是它没有用,我这样尝试过:

<system.webServer>
    <rewrite>
      <outboundRules>
        <rule name="Remove nosniff">
          <match serverVariable="RESPONSE_X_Content_Type_Options" pattern="/products/images/" />
          <action type="Rewrite" value="none"/>
        </rule>
      </outboundRules>
    </rewrite>
  </system.webServer>

但是它没有任何改变,图像仍然具有“ nosniff”标题。

我缺少一些配置吗?还是有另一种方法?

1 个答案:

答案 0 :(得分:1)

您的匹配条件是检查标头RESPONSE_X_Content_Type_Options是否包含值/products/images/而不是nosniff。您可以使用Location块将此规则限制为/products/images/,然后使用pattern="nosniff"查找值nosniff

<configuration>
    ...
    <system.webServer/>
    ...
    <location path="products/images/">
        <system.webServer>
            <rewrite>
                <outboundRules>
                    <rule name="Remove nosniff">
                        <match serverVariable="RESPONSE_X_Content_Type_Options" pattern="nosniff" />
                        <action type="Rewrite" value="none"/>
                    </rule>
                </outboundRules>
            </rewrite>
        </system.webServer>
    </location>
</configuration>

请参阅文档以了解元素:https://msdn.microsoft.com/en-us/library/b6x6shw7(v=vs.100).aspx