You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS限制动词未生效:HEAD请求仍可通过问题排查

问题分析与解决方案

IIS的requestFiltering模块有个默认行为:当你允许GET动词时,会自动隐含允许HEAD请求——因为HEAD请求的作用就是获取GET请求的响应头但不返回响应体,属于GET的附属语义,所以即使你没在配置里显式声明HEAD,只要开了GET,HEAD请求就会被放行。

要实现禁止HEAD请求返回403的预期效果,你需要显式添加HEAD动词并设置allowed="false",覆盖这个默认规则。修改后的web.config配置如下:

<configuration>
    <system.webServer>
        <security>
            <requestFiltering>
                <hiddenSegments>
                    <remove segment="bin" />
                </hiddenSegments>
                <verbs allowUnlisted="false">
                    <add verb="GET" allowed="true" />   
                    <add verb="POST" allowed="true" />
                    <!-- 显式拒绝HEAD请求 -->
                    <add verb="HEAD" allowed="false" />                    
                </verbs>
            </requestFiltering>
        </security>
    </system.webServer>
</configuration>

配置修改完成后,记得重启站点或者回收应用池让配置生效,此时再发送HEAD请求就会返回403 Forbidden错误了。

内容的提问来源于stack exchange,提问作者Eric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 14:12:11