PROPFIND путь-это запрещено?


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

Сообщение PROPFIND путь '' запрещено. Трассировка стека в системе.Сеть.Httpmethod notallowedhandler.ProcessRequest(HttpContext context) в системе.Сеть.HttpApplication.CallHandlerExecutionStep.Система.Сеть.HttpApplication.IExecutionStep.Execute () в системе.Сеть.HttpApplication.ExecuteStep (iexecutionstep step, Boolean& completedSynchronously)

Появился Google результаты, которые, кажется, не имеют ничего общего с моим приложением (это asp.net MVC на IIS6). Сайт функционирует нормально, но я хотел бы попытаться поймать и обработать эту ошибку. Спасибо.

4 8

4 ответа:

Хорошо, я думаю, что мы нашли ответ, и, очевидно, это отчасти очевидно, но я не системный парень, так что это мое оправдание. ;) При использовании MVC с IIS 6 мы реализовалиПодстановочное отображение , чтобы получить хорошие URL-адреса без расширения для сайта. Но насколько я понимаю, с включенным отображением wilcard он просто обрабатывает все запросы, как если бы они были для ASP.net в том числе эти глаголы WebDAV, выпущенные людьми, которые вслепую прощупывают уязвимости, упомянутые 48klocs.

Это общедоступный веб-сервер? Быстрый поиск в Google, кажется, указывает на то, что была DOS-атака с участием PROPFIND и WebDAV. Если он публичный,то вы собираете журналы от нападающих, которые разбрызгивают и молятся. Если он внутренний, то у вас есть более мощный скребок для головы.

Это может быть один из двух вопросов:

  1. PROPFIND не определяется как разрешаемый глагол на веб-сайте для ASP.NET сценарная карта.
  2. сервер запускает UrlScan и не разрешает PROPFIND. Проверьте секции [AllowVerbs] и [DenyVerbs] c:\Windows\System32\InetSrv\urlscan\UrlScan.ini

Мы видели их много, и определили, что многие из них происходят из продуктов Microsoft Office. В частности, Microsoft Office.

Смотрите "Как документы открываются с веб-сайта в Office 2003 " для некоторого объяснения.

Я смог получить некоторое краткое облегчение, добавив отображение для DefaultHttpHandler в web.config для этих двух глаголов:

<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
      <add path="*" verb="OPTIONS, PROPFIND" type="System.Web.DefaultHttpHandler" />
    </httpHandlers>
  </system.web>
</configuration>

Это приводит к успешному запросу "OPTIONS" и вызывает " 501 не реализовано" статус должен быть возвращен для "PROPFIND".

После 19 неудачных попыток MS Word 2007, наконец, решает, что он может использовать запрос "GET" для извлечения файла, и это работает (файл был acutally обслуживается законно).


Небольшое исследование показывает, что StaticFileHandler работает еще лучше для этого. Он возвращает 200 OK для обоих вариантов и propfind глаголов, а также то, что кажется допустимыми данными, если запрос нацелен на фактический ресурс. Когда Word исследует саму папку, это возвращает 404 не найдено.