Отключить методы 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>
но это не сработало
любые идеи?
Ответы
Ответ 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>