Отключить параметры HTTP, трассировку, HEAD, копирование и разблокировку методов в IIS

по соображениям безопасности я хочу отключить эти методы через уровень приложения Итак, у меня есть эта сеть.файл 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>

но это не сработало есть идеи ?

3 ответов


это сработало для меня, но только после принуждения определенных глаголов обрабатываться обработчиком по умолчанию.

<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 и посмотреть, загружается ли ваш сайт.


наконец, я нашел другой ответ на эту проблему. и это работает на меня. Просто добавьте данные ниже в файл 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/


для тех, кто ищет параметр пользовательского интерфейса с помощью диспетчера IIS.

  1. откройте веб-сайт в диспетчере IIS
  2. На Запрос Фильтрации и откройте окно фильтрация запросов.
  3. на глаголы Tab и добавить http глаголы " разрешить глагол..."или" отрицать глагол...". Это позволяет добавлять http-глаголы в - Отрицать Глагол.." Коллекция.

окно фильтрации запросов в IIS Менеджер!--7--> Request Filtering Window in IIS Manager

Добавить Глагол... или отрицать глагол... enter image description here