본문 바로가기

IT

[Fiddler] 피들러 자동 응답 설정

Fiddler에서 특정 URL 패턴으로 들어오는 request를 가로채서 특정 Response를 보내도록 설정 합니다.

 

 

규칙설정

기본적으로 Fiddler는 요청 URL에 대해 대/소문자를 구분하지 않는 일치를 수행합니다.

 

일치 섹션에서 단어를 입력할 수 있으며 해당 단어가 있는 모든 요청을 설정된 응답으로 적용됩니다. 예를 들어 "academic"라는 단어는 다음 요청 URL과 일치합니다.

 

.

다음 매개변수를 사용하여 특정 지시문을 제공할 수 있습니다.

  • EXACT:URL  – 대소문자를 구분하여 요청 URL과 정확히 일치합니다.
  • NOT:string  – 언급된 문자열이 포함되지 않은 요청 URL과 일치하는 URL, URL 경로 또는 URL의 단어일 수도 있습니다.
  • regex:string – 요청 URL에 대해 정규식을 찾습니다. Fiddler Everywhere는 .NET 정규식 엔진을 사용하여 이러한 식을 평가합니다.

 

규칙 작업에는 다음이 옵션이 포함됩니다.

  • *reset – 응답을 보내지 않고 클라이언트 연결을 끊습니다.
  • *delay:x – 서버에 대한 요청을 "x" 밀리초 단위로 지연시킵니다.
  • *ReplyWithTunnel– HTTPS 트래픽에 대해 HTTP/200 터널로 응답합니다. 예: CONNECT 메서드입니다.
  • *CORSPreflightAllow – CORS(교차 원본 리소스 공유) 요청에 대한 액세스를 허용합니다.
  • *header:HeaderName=NewValue – 헤더 값을 지정된 값으로 변경합니다.
  • *redir:https://example.com – 언급된 대상 URL로 리디렉션(HTTP/307)합니다.
  • https://example.com  – 대상 URL을 리포지션으로 반환합니다.
  • 수동으로 조작된 응답 반환 – 이전에 서버에서 반환한 현재 응답(HTML, JS, JSON)을 수정할 수 있습니다.

 

정규식을 사용하는 경우

regex:http://pass.hujiang.com/test/(.*)$(.*)$

REGEX:^http://192\.168\.9\.1\:8080/WF/pages.+/([^/]+)\.swf.*$

 

 

1) 순수 문자열 매칭

  • – 모든 문자열에 일치
  • example  – 대소문자 구분 없이 example 문자열에 일치  https://example.com/academic
  • /paht1 – 대소문자 구분 없이 /paht1 문자열에 일치  https://example.com/paht1?query=academic
  • query – 대소문자 구분 없이 example 문자열에 일치  https://example.com/paht1?p=query

2) NOT 규칙

NOT: 이 규칙은 URL에 지정된 문자가 포함되지 않은 모든 요청과 일치합니다.

  • example  – 대소문자 구분 없이 example 문자열에 일치  https://test.com/academic

 

3) EXACT 규칙

EXACT가 접두사로 붙이는 경우 대소문자를 구분합니다.

 

4) REGEX 정규식

Fiddler는 regex: 접두사가 붙은 정규식 구문을 지원합니다.

  • .+를 사용하여 하나 이상의 문자를 일치시키고,
  • .*를 사용하여 0개 이상의 문자를 일치시키고,
  • ^를 사용하여 문자열의 시작 위치와 일치시키고,
  • $를 사용하여 문자열의 끝과 일치시킵니다.

적용예시
  • regex:.+              :   하나 이상의 만자가 포함된 모든 URL  https://example.com/academic
  • regex:.+\.jpg.*    :    .jpg가 포함된 모든 URL
    https://example.com/foo.jpg?q=bar
    https://example.com/foo.jpg
  • regex:.+\.jpg$    :   .jpg로 끝나는 모든 URL
    https://example.com/foo.jpg?q=bar
    https://example.com/foo.jpg
  • regex:.+\.(jpg|gif|png)$    :   .jpg  .gif  .png 로 끝나는 URL
  • regex:(?insx).+\.(jpg|gif|png)$    : 대소문자를 구분하여 .jpg  .gif  .png 로 끝나는 URL

 ※참고: 옵션 문자열(?insx)의 기능은 대소문자 구분 제한 활성화, # 기호를 사용한 주석 추가 지원

 

 

응답 문자열 설정

  • 파일경로 : 파일 이름의 내용을 응답으로 반환합니다. (피들러 row 값에 포멧 사용)
  • url경로 : 해당 url의 호출 결과를 응답으로 반환합니다.
  • *redir:http://....com : 해당 url로 리다이렉션 응답
  • *bpu : 요청을 보내기전에 중단점 설정
  • *bpafter :  응답을 보내기전에 중단점 설정
  • *delay:#### : 지연시간을 초단위로 설정
  • *header:HeaderName=NewValue지정된 Name을 가진 Request 헤더를 지정된 값으로 설정합니다. (없으면 새로 추가됨)
  • *flag:Name=NewValue지정된 이름의 세션 플래그를 지정된 값으로 설정하십시오.
  • *CORSPreflightAllow CORS가 허용됨을 나타내는 응답을 반환합니다.
  • *reset클라이언트에 대한 TCP/IP RST를 사용하여 즉시 클라이언트 연결을 재설정합니다.
  • *drop응답을 보내지 않고 즉시 클라이언트 연결을 닫습니다.
  • *exit이 시점에서 규칙 처리를 중지합니다.

 

5) 메소드 매치

GET 요청 만 일치 구문을 지원합니다.

  • METHOD:GET EXACT:http://example.com/path

 

 

CORS 허용 설정

METHOD:OPTIONS https://example.com   일치 조건  사용

작업  *CORSPreflightAllow 

CORS(Cross-Origin-Resource-Sharing) 실행 전 요청에 응답하여 클라이언트에 대상 리소스에 액세스할 수 있는 권한을 부여합니다.