在IIS中禁用HTTP OPTIONS,TRACE,HEAD,COPY和UNLOCK方法

时间:2012-08-26 15:18:02

标签: iis web-config

出于安全考虑,我想通过应用程序级别禁用这些方法 所以我有这个web.config文件

<configuration>
<location path="index.php">
<system.webServer>
            <directoryBrowse enabled="false" />
</system.webServer>

<system.web>
    <authorization>
        <deny verbs="OPTIONS" users="*" />
        <deny verbs="TRACE" users="*" />
        <deny verbs="HEAD" users="*" />
        <deny verbs="PROPFIND" users="*" />
        <deny verbs="COPY" users="*" />
        <deny verbs="LOCK" users="*" />
        <deny verbs="UNLOCK" users="*" />
        <deny verbs="PROPPATCH" users="*" />
        <deny verbs="MKCOL" users="*" />
        <deny verbs="MOVE" users="*" />
        <deny verbs="DELETE" users="*" />
    </authorization>
</system.web>

但这不起作用 任何想法?

4 个答案:

答案 0 :(得分:32)

最后,我找到了另一个解决这个问题的方法。这对我有用。只需将以下数据添加到您的webconfig文件即可。

<configuration>
 <system.webServer>
  <security>
   <requestFiltering>
    <verbs allowUnlisted="true">
     <add verb="OPTIONS" allowed="false" />
    </verbs>
   </requestFiltering>
  </security>
 </system.webServer>
</configuration>

表格了解更多信息,您可以访问此网站:http://www.iis.net/learn/manage/configuring-security/use-request-filtering

如果你想测试你的网站,它是否有效......你可以使用&#34; HttpRequester &#34; mozilla firefox插件。对于此插件:https://addons.mozilla.org/En-us/firefox/addon/httprequester/

答案 1 :(得分:6)

这对我有用,但只有在强制特定动词由默认处理程序处理之后才会起作用。

<system.web>
...
  <httpHandlers>
  ... 
    <add path="*" verb="OPTIONS" type="System.Web.DefaultHttpHandler" validate="true"/>
    <add path="*" verb="TRACE" type="System.Web.DefaultHttpHandler" validate="true"/>
    <add path="*" verb="HEAD" type="System.Web.DefaultHttpHandler" validate="true"/>

您仍然使用与上面相同的配置,但也强制使用默认处理程序处理动词并进行验证。资料来源:http://forums.asp.net/t/1311323.aspx

一种简单的测试方法就是拒绝GET并查看您的网站是否加载。

答案 2 :(得分:3)

对于使用IIS管理器寻找UI选项的任何人。

  1. 在IIS管理器中打开网站
  2. 转到请求过滤,然后打开“请求过滤窗口”。
  3. 转到动词标签并将HTTP动词添加到“允许动词...”或“拒绝动词...”。 这允许在中添加HTTP谓词 “Deny Verb ..”收藏。
  4. IIS管理器中的请求筛选窗口 Request Filtering Window in IIS Manager

    添加动词...或拒绝动词...... enter image description here

答案 3 :(得分:2)

这个禁用所有假动词,只允许GET和POST

show