Подтвердить что ты не робот

Отключить методы HTTP OPTIONS, TRACE, HEAD, COPY и UNLOCK в IIS

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

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

4b9b3361

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

Ответ 2

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

если вы хотите протестировать свой веб-сайт, работает он или нет... Вы можете использовать плагин Mozilla firefox HttpRequester. для этого плагина: https://addons.mozilla.org/En-us/firefox/addon/httprequester/

Ответ 3

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

  • Откройте веб-сайт в диспетчере IIS
  • Перейдите в Фильтрация запросов и откройте окно фильтрации запросов.
  • Перейдите в вкладку Глаголы и добавьте HTTP-глаголы в "Разрешить глагол..." или "Запретить глагол...". Это позволяет добавить HTTP-глаголы в Коллекция "Deny Verb..".

Окно фильтрации запросов в диспетчере IIS Окно фильтрации запросов в диспетчере IIS

Добавить глагол... или отрицать глагол... введите описание изображения здесь

Ответ 4

Этот отключает все фальшивые глаголы и разрешает только GET и POST

<system.webServer>
  <security>
    <requestFiltering>
      <verbs allowUnlisted="false">
    <clear/>
    <add verb="GET" allowed="true"/>
    <add verb="POST" allowed="true"/>
      </verbs>
    </requestFiltering>
  </security>
</system.webServer>