禁用HTTP OPTIONS,TRACE,HEAD,复制和解锁IIS方法(Disable HTTP

2019-06-27 09:27发布

出于安全原因,我想,禁止通过应用水平的方法,所以我有这样的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>

但这并没有工作任何想法?

Answer 1:

这为我工作,但只有迫使特定的动词来用默认的处理器处理后。

<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,看看你的网站负载。



Answer 2:

Finaly我发现了另一个答案这个问题。 这是为我工作。 正下方DATAS添加到您的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

如果你想测试你的网站,是工作或不...你可以用“HttpRequester” Mozilla Firefox浏览器插件。 这个插件: https://addons.mozilla.org/En-us/firefox/addon/httprequester/



Answer 3:

为寻找使用IIS管理器UI选项。

  1. 打开IIS管理器的网站
  2. 转到请求过滤 ,并打开请求筛选窗口。
  3. 转到动词选项卡并添加HTTP动词为“允许动词...”或“拒绝动词...”。 这允许添加HTTP动词“拒绝动词..”收藏。

请求筛选窗口在IIS管理器

添加动词...或拒绝动词...



文章来源: Disable HTTP OPTIONS, TRACE, HEAD, COPY and UNLOCK methods in IIS