문제

디버그 HTTP 동사에 대한 자세한 내용을 찾고 있습니다.
이것이 원격 디버깅에 사용된다는 것이 분명합니다.하지만 IIS 또는 ASP.NET에 대한 것인지 확실하지 않습니다.

이 인터페이스에 직접 액세스하려면 (예 : Visual Studio를 통해가 아니라이 명령을 수동으로 보내려면) 알아야 할 사항은 무엇입니까? 그것의 명령은 무엇입니까?
또한 오용 사례에 관심이 있습니다. 정보가 있으면 ...

도움이 되었습니까?

해결책

완전성을 위해서만 여기에서 답을 통합합니다 is-is-the-non-standard-http-verb-debug-for-in-asp-net-iis: (감사합니다 @mark, @jørn).

http://support.microsoft.com/kb/937523

클라이언트가 ASP.NET 2.0 응용 프로그램에 디버거를 자동으로 첨부하려고 할 때 클라이언트는 디버그 동사가 포함 된 HTTP 요청을 보냅니다. 이 HTTP 요청은 응용 프로그램 프로세스가 실행 중인지 확인하고 첨부 할 올바른 프로세스를 선택하는 데 사용됩니다.

그만큼 DEBUG 동사는 원격 디버깅 세션을 시작/중지하는 데 사용됩니다. 보다 구체적으로, a DEBUG 요청에는 값이있는 명령 헤더가 포함될 수 있습니다 start-debug 그리고 stop-debug, 그러나 실제 디버깅은 RPC 프로토콜을 통해 수행됩니다.

Windows 인증 및 DCOM을 사용하여 실제로 디버깅을 수행합니다 (RPC 트래픽을 허용하는 경우 더 큰 문제가 발생합니다) 또는 악용. 그러나 Urlscan은 기본적으로 차단합니다.

그러나 ASP.NET 웹 사이트를 Poking 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 트래픽이 활성화되지 않는 한 디버깅을 활성화하면 새로운 공격 벡터가 열릴 지 확신 할 수 없습니다.이 경우 더 심각한 문제가 있습니다.

다른 팁

원격 디버깅을하고 싶다면 Debug.WriteLine 및 Sysinternals의 도구를 사용하는 것이 좋습니다. 디버그 뷰. 이를 통해 필요한 액세스 권한이있는 경우 위치 시스템이나 원격 시스템에서 디버그 문의 '듣기'를 할 수 있습니다.

나는 익숙하지 않기 때문에 Debug HTTP에 대한 부분에 직접 대답 할 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top