Customize request/response panel in ZAP

오늘은 ZAP의 소소한 팁 하나를 공유할까 합니다. 보통 Request/Response 탭은 Layout 정도만 변경하고 기본 값을 사용하는 경우가 많은데요 사실 ZAP의 Request/Response 탭은 생각보다 디테일하게 설정이 가능합니다.

보통 이게 기본이죠

그럼 한번 살펴봅시다.

How to customize?

ZAP의 대다수 설정은 Options에 있기 때문에 Options > Display 있을거라 생각하셨겠지만, 이 옵션은 Options에 없습니다. Request와 Response 탭에서 각 Context menu(우클릭) > View 를 통해서만 설정이 가능합니다. (아마 자주 안쓰면 모르실껄요… 심지어 오래된 기능입니다.)

Default Options

우선 기본적으로 아래 3개는 체크되어 있습니다.

  • Anti-Aliasing (퀄리티)
  • Word Wrap (개행 문자 단위로 할지)
  • Animated Bracket Matching (JSON이나 HTML 태그에서 괄호 끝에 보여줄지)

물론 셋다 없으면 안될 기능이라 기본값 그대로 쓰시는걸 추천드려요.

Show Line Number

말 그대로 Line Number를 보는 기능입니다. 재미있는건 각 패널 단위(Request Header, Body 그리고 Response Header, Body)로 4개 모두 각각 설정이 가능합니다. Layout 조정으로 합쳐진 경우엔 당연히 합쳐진 패널들만 제어되겠죠.

실제로 Line number를 자주 볼일은 없어서 불필요할 수 있지만, Line number가 있는 것 만으로도 눈이 편안해집니다. (이건 개발하시는 분들이라면 공감하실 것 같네요..ㅋㅋ 없으면 괜히 불편)

Highlight Line 관련

Highlight Current Line

설정하시면 이렇게 클릭한 line에 음영 처리가 들어갑니다.

저는 개인적으로 없는게 편해서 안씁니다.

Fade Current Highlight Line

이건 솔직히 뭔지 잘 모르겠어요. 변화가 없음 😧

Whitespace와 newline char

공백, 탭 등 whitespace문자, 그리고 newline (CLRF)를 표기해줍니다.

이건 켜두고 쓰기엔 눈에 좀 거슬려서 평소에는 끄고, 테스팅 시 whitespace랑 newline 체크가 필요할 때 켜서 쓰곤 합니다. 대표적으로 HTTP Request Smuggling에서 Chunked 처리를 위해선 개행문자도 같이 체크해야하는데, 이 때 진짜 편해요 😎

Mark Occurrences

이 옵션을 체크하면 각 패널에서 롱 클릭시 아래 이미지 처럼 관련 코드가 사용된 부분을 표기해줍니다.

이런거 보면 개발 IDE랑 많이 닮았죠

ZAP의 Response 탭에서 분석을 많이 하시는 경우라면 유용하게 잘 쓰입니다 :D (전 Response body만 켜두고 있어요. Request에 키면 불편)

Rounded Selection Edges

드래그해서 영역을 선택할 때 박스의 모서리를 둥글게 설정할 수 있습니다. 기호에 따라 다르겠지만, 전 그냥 사각이 편하네요.

Bracket Matching (and Animated)

괄호 찾아주는 기능입니다. Highlight가 진하지 않아서 크게 불편하진 않아요. 시작 지점 또는 종료 지점을 눌러주면 각 상반된 괄호에 Highlight를 넣어줍니다.

Animated를 체크하면 Highlight 과정에 애니메이션 효과가 추가됩니다.