Как подсказал Марк, глагол DEBUG
используется для запуска / остановки сеансов удаленной отладки. Более конкретно, запрос DEBUG
может содержать заголовок Command
со значениями start-debug
и stop-debug
, но фактическая отладка выполняется по протоколу RPC.
Итак, почему сканер безопасности выполняет такой запрос? Похоже, что поиск веб-сайта ASP.NET с запросами DEBUG
может использоваться для определения, имеет ли web.config
значение <compilation debug="true">
. Тест можно выполнить с помощью telnet, WFetch или аналогичного, отправив запрос следующим образом:
DEBUG /foo.aspx HTTP/1.0
Accept: */*
Host: www.example.com
Command: stop-debug
В зависимости от того, включена отладка или нет, вы получите либо 200 OK
, либо 403 Forbidden
.
обычно принято , что вы никогда не должны иметь <compilation debug="true"/>
в производственной среде, поскольку это имеет серьезные последствия для производительности веб-сайта. Я не уверен, что при включенной отладке открываются какие-либо новые векторы атаки, если только не включен RPC-трафик, в этом случае у вас все равно возникают более серьезные проблемы (см. Ответ Марка). Будем весьма благодарны за любые дополнительные сведения о перспективах безопасности.
Существует простой способ избежать случайного получения <compilation debug="true"/>
на производственных сайтах. Просто добавьте <deployment retail="true"/>
к вашему machine.config
.
Очевидно, что <deployment retail="true"/>
в machine.config
равно , а не равно значению <compilation debug="false"/>
в данном конкретном случае. Результат от выдачи DEBUG
запросов на веб-приложение может быть изменен только с последним. Ошеломляют!