programing

들어오는 모든 http 요청을 어떻게 모니터링합니까?

bestprogram 2023. 6. 26. 21:32

들어오는 모든 http 요청을 어떻게 모니터링합니까?

들어오는 http에서 내 응용 프로그램을 모니터링해야 합니다.POST그리고.GET외부 및 때로는 기계 내부에서 발생하는 요청입니다.

이것이 가능합니까?

fiddler를 사용하고 있는데 (기계 외부에서) 발신만 수신되지 않거나 잘못 구성했습니까?

이것은 내 웹 앱을 위한 것으로, 그것은 수신하기 위한 것입니다.POST외부 서버에서.

Fiddler가 "역방향 프록시"로 작동하도록 구성해야 합니다.

Fiddler의 웹 사이트에서 이 작업을 수행할 수 있는 두 가지 방법에 대한 지침이 있습니다.다음은 단계의 복사본입니다.


0단계

다음 옵션 중 하나가 작동하려면 먼저 다른 컴퓨터가 Fiddler에 연결하도록 설정해야 합니다.이렇게 하려면 [도구] > [피들러 옵션] > [연결]을 누른 후 "원격 컴퓨터의 연결 허용" 확인란을 선택합니다.그런 다음 Fiddler를 닫습니다.

옵션 #1: Fiddler를 역방향 프록시로 구성

이 Fiddler에 되도록 Fiddler를 할 수 .http://127.0.0.1:8888는 자동으로 동일한 컴퓨터의 다른 포트로 전송됩니다.구성을 하려면: "는 다음과 같습니다.

  1. REGEDIT 시작
  2. HKCU\SOFTWARE\Microsoft\Fiddler2 내에 ReverseProxyForPort라는 새 DWORD를 만듭니다.
  3. 인바운드 트래픽을 재라우팅할 로컬 포트로 DWORD 설정(일반적으로 표준 HTTP 서버의 경우 포트 80)
  4. Fiddler 다시 시작
  5. 에서 브우저여로 합니다.http://127.0.0.1:8888

옵션 #2: FiddlerScript 규칙 작성

또는 동일한 작업을 수행하는 규칙을 작성할 수 있습니다.

WEBSERVER라는 시스템의 포트 80에서 웹 사이트를 실행하고 있다고 가정합니다.웹 프록시를 구성할 수 없는 Windows SmartPhone 장치에서 Internet Explorer Mobile Edition을 사용하여 웹 사이트에 연결하고 있습니다.전화기의 트래픽과 서버의 응답을 캡처하려고 합니다.

  1. 기본 포트 8888에서 실행되는 WEBSERVER 시스템에서 Fiddler를 시작합니다.
  2. 도구 | Fiddler 옵션을 클릭하고 "원격 클라이언트의 연결 허용" 확인란이 선택되어 있는지 확인합니다.필요한 경우 다시 시작합니다.
  3. 규칙 | 규칙 사용자 정의를 선택합니다.
  4. OnBeforeRequest 핸들러 안에 새 코드 줄을 추가합니다.
    "if(oSession.host.toLowerCase() == "webserver:8888") oSession. 호스트 = "webserver:80";
  5. 스트폰서이다니합동으로 합니다.http://webserver:8888

스마트폰의 요청이 Fiddler에 나타납니다.요청은 포트 8888에서 웹 서버가 실행 중인 포트 80으로 전달됩니다.응답은 Fiddler를 통해 스마트폰으로 다시 전송됩니다. 스마트폰은 콘텐츠가 원래 포트 80에서 왔다는 것을 전혀 알지 못합니다.

Microsoft Network Monitor를 설치하고 HTTP 패킷만 볼 수 있도록 도구를 구성한 다음(포트 필터링) 패킷 캡처를 시작합니다.

여기서 다운로드할 수 있습니다.

Windows에서 Fiddler를 '역방향 프록시'로 구성

(Mac의 경우 아래 Partizano의 설명에 있는 링크를 참조하십시오.)

이미 이를 제안하는 답변이 있다는 것을 알고 있지만, 이에 대한 설명과 지침을 제공하고 일부 '고차'에 대해서도 다루고자 합니다. 따라서 다음과 같이 설명하겠습니다.

Fiddler를 '역방향 프록시'로 구성한다는 것은 무엇을 의미합니까?

  • 기본적으로 Fiddler는 Fiddler를 실행 중인 컴퓨터에서 보내는 요청만 모니터링합니다.
  • 들어오는 요청을 모니터링하려면 Fiddler가 '역방향 프록시'로 작동하도록 구성해야 합니다.
  • 즉, Fiddler를 수신 요청을 수신할 컴퓨터의 특정 포트(8888)로 전송되는 수신 http 요청을 가로채는 '프록시'로 설정해야 합니다.그런 다음 Fiddler는 이러한 요청을 일반 포트(https의 경우 일반 포트 80 또는 443)로 전송하여 동일한 컴퓨터의 웹 서버에 전달합니다.그것은 사실 매우 빠르고 쉽게 할 수 있습니다!
  • Fiddler를 사용하여 이를 설정하는 표준 방법은 Fiddler가 포트 '8888'로 전송된 모든 요청을 가로채도록 하는 것입니다(다른 포트를 쉽게 사용할 수 있지만 일반적으로 다른 포트에서는 사용되지 않기 때문입니다).
  • 그런 다음 레지스트리 편집기를 사용하여 Fiddler가 포트 8888에서 수신하는 모든 http 요청을 전달하여 표준 http 포트(https 요청의 경우 포트 80, 포트 443 또는 웹 서버가 수신 대기하도록 설정된 다른 사용자 지정 포트)로 전달되도록 해야 합니다.

참고: 이 기능이 작동하려면 가로채려는 모든 요청이 포트 8888로 전송되어야 합니다.

호스트 이름에 :88888을 추가하여 이 작업을 수행합니다. 예를 들어 MVC 경로의 경우 다음과 같습니다.

http://myhostname:8888/컨트롤러/action


워크스루

Fiddler가 포트 8888에서 원격 http 요청을 수락할 수 있는지 확인합니다.

관리자로 Fiddler를 실행합니다. 도구 > Fiddler 옵션 > 연결로 이동하고 '원격 컴퓨터의 연결 허용'이 선택되어 있고 'Fiddler listen on port'가 8888로 설정되어 있는지 확인합니다.

enter image description here

포트 8888에서 수신된 요청을 포트 80으로 전달하도록 Fiddler 구성

  • 피들러 닫기
  • REGEDIT 시작
  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Fiddler2 파일의 ReverseProxyForPort 파일의 DWORD 파일입니다.
    • 이제 DWORD 값을 인바운드 트래픽을 재라우팅할 로컬 포트(일반적으로 표준 HTTP 서버의 경우 포트 80)로 설정합니다.
  • 이렇게 하려면 만든 DWORD를 마우스 오른쪽 단추로 클릭하고 '수정'을 선택합니다.'Base'가 'Decimal'로 설정되어 있는지 확인하고 '80'(또는 다른 포트)을 'Value data'로 입력합니다.

포트 8888이 방화벽에서 열려 있는지 확인합니다.

  • 포트 8888이 외부 요청에 대해 열려 있는지 확인해야 합니다(서버가 방화벽으로 보호되는 경우 기본적으로 포트가 아님).

바로 그거야!이제 Fiddler가 포트 8888의 모든 요청을 가로채도록 역방향 프록시로 설정되어야 합니다(Fiddler에서 요청을 볼 수 있도록). 그러면 실제로 처리될 웹 서버로 전달됩니다.

요청 테스트

  • Fiddler 다시 시작
  • Fiddler가 외부 요청을 가로채고 있는지 테스트하려면 Fiddler를 역방향 프록시로 설정한 컴퓨터에서 브라우저를 엽니다.브라우저를 http://127.0.0.1:8888로 이동합니다.
  • 이 테스트는 포트 8888에 기본 요청을 하는 것을 테스트합니다.
  • Fiddler에 의해 가로챈 요청이 표시됩니다.
  • 이제 다른 컴퓨터의 요청을 테스트할 수 있습니다. 예를 들어, 다음과 같은 다른 컴퓨터의 브라우저에서 요청을 하면 됩니다(여기서 'remoteHostname'은 Fiddler를 역방향 프록시로 설정한 컴퓨터의 호스트 이름입니다).

http://remoteHostname:8888/컨트롤러/action

  • 또는 위와 유사한 URL을 사용하여 원격 시스템의 다른 Fiddler 인스턴스를 사용하여 요청을 작성할 수 있습니다.이렇게 하면 GET 또는 POST 요청을 할 수 있습니다.

중요:요청 보기를 마쳤으면 도구 > Fiddler 옵션 > 연결로 돌아가서 '원격 컴퓨터 연결 허용' 옵션을 제거하십시오. 그렇지 않으면 타사에서 서버를 통해 트래픽을 바운스할 수 있습니다.

직원들은 요청 간에 로컬로 흐르는 모든 트래픽을 모니터링할 수 있는 완벽한 방법을 찾았습니다.

  1. Wireshark 설치

  2. 로컬 호스트에서 로컬 호스트로 흐르는 트래픽을 캡처해야 하는 경우 wireshark를 사용하기가 어렵습니다. 이는 네트워크 카드에서 들어오는 트래픽만 모니터링하기 때문입니다.이렇게 하는 방법은 모든 트래픽이 게이트웨이를 통과하도록 강제하는 경로를 창에 추가하는 것이며 이 경로는 네트워크 인터페이스에서 캡처됩니다.

    이렇게 하려면 다음을 사용하여 <gateway>경로를 추가합니다.

     cmd> route add 192.168.20.30 192.168.20.1
    
  3. 그런 다음 wireshark에서 캡처를 실행한 다음(바이트가 흐르는 인터페이스를 선택했는지 확인) 필터링합니다.

새로 추가된 노선은 검은색으로 표시됩니다.(로컬 주소이므로)

Microsoft Message Analyzer는 Microsoft Network Monitor 3.4의 후속 제품입니다.

HTTP 수신 트래픽이 58000 포트의 웹 서버로 전송되는 경우 관리자 모드에서 Analyzer를 시작하고 새 세션을 클릭합니다.

필터 사용: tcp.포트 = 58000 및 HTTP

추적 시나리오: "로컬 네트워크 인터페이스(Win 8 이전 버전)" 또는 "로컬 네트워크 인터페이스(Win 8.1 이후 버전)"는 OS에 따라 다릅니다.

구문 분석 수준:가득한

Fiddler를 역방향 프록시로 실행하는 것을 고려할 수 있습니다. 클라이언트가 Fiddler의 주소로 연결한 다음 Fiddler의 요청을 응용 프로그램으로 전달할 수 있어야 합니다.

요구 사항에 따라 더 쉬운 포트 조작 또는 클라이언트 구성이 필요합니다.

자세한 방법은 다음을 참조하십시오. http://www.fiddler2.com/Fiddler/Help/ReverseProxy.asp

TcpView를 사용하여 포트 수신 및 연결을 확인합니다.이렇게 하면 요청이 표시되지 않습니다.

요청을 보려면 제가 모르는 프록시의 역방향이 필요합니다.

추적을 사용하여 요청의 일부(요청의 처음 1KB)를 제공합니다.

Wireshark 사용 중...

시도해 본 적이 없습니다: http://wiki.wireshark.org/CaptureSetup/Loopback

만약 그것이 효과가 있다면, 당신은 다음을 위해 필터링할 수 있습니다.http/http contains GET/http contains POST교통.

두 개의 Wireshark 인스턴스, 하나는 로컬 캡처, 하나는 원격 캡처를 실행해야 할 수 있습니다.잘 모르겠어요.

HTTP 디버거를 사용해 볼 수도 있습니다. 수신 HTTP 요청을 표시하는 기능이 내장되어 있으며 시스템 구성을 변경할 필요가 없습니다.

HTTP Debugger

언급URL : https://stackoverflow.com/questions/4428680/how-do-i-monitor-all-incoming-http-requests