by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

Fiddler의 활용




Fiddler 활용

1. Fiddler

  • 컴퓨터와 인터넷 사이의 HTTP(S) 트래픽로그를 감시하는 웹 디버깅 프록시
  • 브라우저 외에 HTTP(S) 프로토콜을 사용하는 모든 트래픽을 대상으로 사용
  • 다양한 플러그인을 ADD IN을 통해서 설치가능
  • 다운로드

2. 활용하기

*참고

    • IE - Wininet.dll (Window 32 Internet API) 로만 통신
    • FF, Safari, Opera 모두 mswsock.dll 로 통신
    • IE - 기본적으로 제약되는 AJAX 통신은 2개의 TIP/IP 커넥션만 유지 가능 하나 레지스트리 수정을 통해서 변경가능
    • FF, Safari, Opera - 기본적으로 제약되는 AJAX 통신은 2개의 TIP/IP 커넥션만 유지 가능 하나 브라우저 에서 제공하는 환경설정 창을 통해 변경 가능
    • 동작지점

2.1 AutoResponder


*실습하기
권한 체크를 하는 스크립트를 피들러를 통해서 우회하는 방법 소개.

2.2 Customize Rules

*실습하기
특정 도메인의 respose 값에서 지정한 문자열을 다른 문자열로 교체 시켜 동작이 되도록 하는 방법 소개

2.3 HTTPS 패킷 감청하기

*실습하기
옵션을 활성화 시키지 않을경우
SSL은 암호화 되어 있기 때문에 Fiddler가 내용을 캡처 한다할지라도 볼 수 없음
SSL은 80이 아닌 별도 포트를 사용하기 때문에 80포트를 캡처하는 Fiddler는
SSL 연결하는 Request만 캡처
HTTPS capture 옵션 활성화 시켜서 패킷 캡쳐 방법 소개 (실행 예제 okjsp.pe.kr )

2.4 Composer(Request Builder)

2.5 Inspectors 탭 분석 (HTTP 압축을 기준으로 사용방법 설명하기)

HTTP 프로토콜은 HTTP 압축이란 용어를 사용하지 않음
Content-Coding 이란 용어를 쓰며 이 Content-Coding이 주로 압축의 용도로 사용된다고 명시
Accept-Encoding 헤더와 Content-Encoding 헤더
이 두개의 HTTP 헤더 값을 통해 클라이언트(웹 브라우저)와 서버(웹 서버)가 압축을
할 것인가 말 것인가 그리고 압축에 사용되는 알고리즘을 결정

Accept-Encoding은 클라이언트가 웹 서버에게 보내는 HTTP Request 메시지에 명세 하는 값으로서
클라이언트가 이 헤더에 명시된 인코딩(압축)을 이해하고 디코딩(압축 해제)을 수행할 수 있다는 것을 서버에 알림

클라이언트가 압축된 컨텐츠를 받아 압축을 해제할 수 있는 압축 알고리즘을
서버에 알리는 용도로 Accept-Encoding 헤더가 사용(Accept-Encoding: gzip, deflate)

웹 서버는 Accept-Encoding의 값을 살펴보고 필요에 따라서 HTTP Response(HTML, CSS, 이미지 등의 결과물)를 압축

웹 서버가 HTTP Response를 압축했다면 서버는 결과가 어떤 알고리즘에 의해 인코딩(압축) 되었는가를
Content-Encoding 헤더를 통해 명시

Content-Encoding 이 존재 할경우 사이트가 반환하는 실제 컨텐츠(TextView 버튼을 클릭)는 HTML 이 아닌 바이너리
브라우저가 압축을 풀고 그 결과를 표시

*실습하기
Composer(request builder) 를 통해서 Accept-Encoding 속성 여부에 따른 결과값 확인 (실행 예제 www.naver.com)

2.6 부가설명(IE에 한정된 설명이므로 참조만 하시오)

동일 호스트에 대해 최대 2개까지의 TCP 연결 만을 맺도록 기본 설정되어 있다
IE가 HTTP 액세스 할 때 사용되는 WinInet 역시 동일한 제약

WinInet(Firefox 는 이기능을 사용치 않음)
WinInet은 Windows Internet 이란 이름의 클라이언트용 인터넷 액세스 API 집합
XMLHttp 객체(MSXML2.XMLHttp) 역시 WinInet API를 사용하고 있음
한 서버에 2개 혹은 4개의 TCP 연결만을 허용한다는 점이다.
HTTP 1.1 프로토콜의 경우에 2개의 연결을, HTTP 1.0 의 경우에 4개의 연결만 지원

WinHTTP
WinHTTP는 WinInet과는 달리 오로지 HTTP 프로토콜만을 지원하는 클라이언트용 API

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.