阻止HEAD请求到我的网站

时间:2013-12-22 01:53:27

标签: asp.net-mvc iis request head

我正在查看我的asp.net mvc网站,并考虑阻止IIS中的HEAD动词访问该网站。

我不明白为何目前需要或正在使用此类请求。

为什么网站上需要HEAD请求?

2 个答案:

答案 0 :(得分:2)

上面发布的评论是正确的。据我所知,HEAD请求是由浏览器发出的,用于检查诸如......我是否需要再次下载,页面是否仍然存在等等。基本上,如果浏览器想了解一个页面没有下载整个页面,它会发出HEAD个请求。所以,简而言之,它们不是harmful thing to be happening

但是,如果要阻止这些,可以使用以下语法(取自MSDN/IIS)在web.config中执行此操作

<configuration>
   <system.webServer>
      <security>
         <requestFiltering>
            <verbs applyToWebDAV="false">
               <add verb="HEAD" allowed="false" />
            </verbs>
         </requestFiltering>
      </security>
   </system.webServer>
</configuration>

但是,我认为这是一种非典型的设置,您可能希望在针对面向生产的网站启用此功能之前,在多个浏览器中测试您的网站的性能/中断。

答案 1 :(得分:0)

有些恶意扫描程序会发出大量HEAD请求,试图找到已知的易受攻击资源,例如可能允许他们上传恶意文件的文件上传组件。他们使用HEAD请求,因为它比GET请求更快,因为它没有响应主体,只有标题。

他们的意图不仅是恶意的,而且通过请求大量不存在的资源,他们可以将负载加载到您的服务器上。

另一方面,谷歌在决定是否重新获取某个页面时也使用HEAD请求来节省时间和带宽(即自我上次抓取以来它已经更改)。

理想情况下,您会找到一种方法来阻止恶意请求并允许来自Google / Web浏览器的合法请求。