본문 바로가기
API/Fiddler

Fiddler_피들러 사용기법

by Testengineer 2022. 9. 25.
반응형

피들러를 사용해서 트래픽 방향 바꾸기

피들러를 사용해서 요청의 방향을 바꿀 수 있는 방법은 세 가지가 있다.

(1) rewrite

피들러를 사용해 요청의 헤더를 바꾸면 서버 요청을 A>B로 가도록 바꿀 수 있는데 이를 rewrite라고 한다. 

클라이언트는 이미 보낸 요청이 수정되었는지 알 수 없다. 그래서 요청과 함께 보낸 쿠키는 새 URL이 아닌 원래 URL에 속하게 된다. 요청 URL과  host 헤더를 수정한 것이므로 재작성된 요청은 업스트림 프록시 서버를 아무런 문제 없이 안전하게 통과할 것이다. 대상 서버는 전송받은 요청의 host 헤더에서 자신의 이름을 보게 될 것이다.

(2) reroute

A 서버로 보낼 요청을 B 서버로 보내되 요청 자체는 아무것도 수정하지 않는 방법을 대상변경(reroute)라고 한다. 피들러는 접속한 서버에 요청을 전송하기 전에 요청에 대상 변경 표식이 되어 있는지를 확인한다. 대상 변경 표식이 있다면 요청의 host헤더에서 설정된 호스트가 아닌 세션의 X-OverrideHost 플래그에서 정의된 호스트 이름으로 접속한다.

클라이언트는 대상이 변경되는 것을 모른채 과정이 진행되므로 Host헤더, URL 요청의 쿠키는 변경되기 전 원래의 호스트에서 사용할 내용을 포함한다. 대상이 변경된 요청이 업스트림 게이트웨이 프록시를 우회하도록 호스트 변경 도구를 사용해 X-OverrideHost 플래그와 bypassGateway boolean 값을 설정해야 한다.

웹 서버는 이 요청을 받으면 host 헤더를 보고 원래 전송하려던 서버 호스트의 이름을 알 수 있다. 

(3) redirection

피들러를 이용해 HTTP/307 redirection 응답을 클라이언트로 보내면 방향 전환이 일어나는데, 이때 클라이언트는 응답에서 받은 새로운 주소로 요청을 다시 보낸다. 방향 전환에서는 클라이언트가 요청을 다시 보내야 하기 때문에 요청 대상이 변경되었음을 클라이언트에서도 인지하게 되며 요청의 host 헤더와 URL은 새로운 값으로 변경되어 다시 전송된다. 클라이언트 대상 URL로 적절한 쿠키를 전송하게 되는데, 요청이 https를 통해 전송되는 경우 클라이언트는 대상 서버가 새로운 URL과 그에 일치하는 host헤더를 전송하므로, 이 요청은 업스트림 게이트웨이 프록시를 통해 대상 서버로 전송되어도 안전하다.

 

중단점을 설정하여 디버깅하기

중단점(breakpoint) : 일시적으로 정지될 명령

프로그램이 일시적으로 정지되면 그 시점 그 상태에서의 프로그램을 조사할 수 있으며, 메모리나 실행의 흐름을 수정하여 프로그램의 동작을 바꿀 수도 있다.

피들러에서도 실행중인 세션은 두 지점에서 일시정지될 수 있다.

1. 클라이언트에서 요청을 모두 읽었으나 아직 서버로는 보내지 않았을 때 > 요청 중단점

2. 서버에서 응답을 모두 받았으나 아직 클라이언트로는 보내지 않았을 때 > 응답 중단점

전역 중단점 사용 방법 : Rules > Automatic Breakpoint / 하단 상태 표시줄의 3번째 패널

모든 요청에 중단점이 설정되어 정지를 해제해 주어야 할 요청이 많아질 수 있다. 그럴 때는 Filters/AutoResponder탭을 사용하여 중단점 설정 조건을 좀 더 상세히 적용하면 된다.

Filters 탭을 사용하면 post 방식을 사용한 세션, 질의 문자열을 포함한 세션, XMLHttpsRequest를 통해 전송된 세션, 특정 content-type을 반환하는 세션 등 조건에 따라 중단점을 설정할 수 있다.

AutoResponder탭을 사용하면 여러분이 미리 입력한 텍스트나 정규 표현식에 요청 URL이 일치하는 경우에만 요청, 응답 중단점을 설정할 수 있다. *bpu로 사용하면 요청 중단점을 만들고, *bpafter로 사용하면 응답 중단점을 만든다.

세션이 정지되면 요청과 응답 조사기 사이에 막대 모양의 중단점 바가 나타난다. 

Break on Response : 응답에서 멈추기 버튼으로 세션이 요청 중단점에서 멈췄을 때 현재 세션에 응답 중단점을 설정하고 멈췄던 상태를 해제하며 요청을 서버로 전송한다.

Run to Completion : 멈췄던 상태를 해제하고 응답에서 멈추는 일 없이 세션을 끝까지 진행한다.

Choose Response : 드롭다운 메뉴에서 특정 값을 선택하면 템플릿이나 파일을 바로 읽어 들여서 응답 조사기에 표시하여 클라이언트로 응답을 보내기 전 응답을 수정할 수 있다. 요청 중단점에서 정지되었을 때 드롭다운에서 응답을 선택하면 요청을 서버로 보내지 않고 피들러가 바로 응답한다.

 

반응형

'API > Fiddler' 카테고리의 다른 글

Fiddler_브라우저 트래픽 캡처  (0) 2022.09.30
Fiddler_기본개념  (0) 2022.09.20

댓글