HAR 파일 생성
HTTP Archive (HAR) 형식 파일은 HTTP 요청 및 HTTP 응답에 대한 정보를 교환하기 위한 산업 표준입니다. HAR 파일의 내용은 브라우저가 웹 사이트와 상호작용하는 내용을 JSON 형식으로 포함하고 있습니다. 확장자 .har
파일이 흔히 사용됩니다.
HAR 파일은 GitLab CI/CD 파이프라인의 일환으로 웹 API Fuzz Testing을 수행하는 데 사용할 수 있습니다.
HAR 파일 생성
HAR 파일은 매뉴얼으로 생성하거나 웹 세션을 기록하는 전문 도구를 사용하여 생성할 수 있습니다. 전문 도구를 사용하는 것이 좋습니다. 그러나 이러한 도구로 생성된 파일이 민감한 정보를 노출하지 않고 안전하게 사용될 수 있는지 확인하는 것이 중요합니다.
다음 도구를 사용하여 네트워크 활동을 기반으로 HAR 파일을 생성할 수 있습니다. 이 도구들은 자동으로 네트워크 활동을 기록하고 HAR 파일을 생성합니다:
- GitLab HAR Recorder.
- Insomnia API Client.
- Fiddler debugging proxy.
- Safari 웹 브라우저.
- Chrome 웹 브라우저.
- Firefox 웹 브라우저.
GitLab HAR Recorder
GitLab HAR Recorder는 HTTP 메시지를 기록하여 HTTP Archive (HAR) 파일로 저장하는 명령줄 도구입니다. GitLab HAR Recorder에 대한 자세한 내용은 홈페이지를 참조하세요.
GitLab HAR Recorder 설치
사전 요구사항:
- Python 3.6 이상 설치.
- Microsoft Windows의 경우
Microsoft Visual C++ 14.0
를 설치해야 합니다. 이는 Visual Studio Downloads 페이지에서 빌드 도구를 위한 Visual Studio와 함께 제공됩니다. - HAR Recorder 설치.
GitLab HAR Recorder 설치:
pip install gitlab-har-recorder --extra-index-url https://gitlab.com/api/v4/projects/22441624/packages/pypi/simple
GitLab HAR Recorder를 사용하여 HAR 파일 생성
- 프록시 포트와 HAR 파일 이름으로 레코더를 시작합니다.
- 프록시를 사용하여 브라우저 작업을 완료합니다.
- 프록시가 사용되었는지 확인하세요!
- 레코더를 중지합니다.
모든 요청이 HAR에 포함되었는지 확인하려면 예를 들어 온라인 HAR 뷰어를 사용하세요:
Insomnia API Client
Insomnia API Client는 API 디자인 도구로 여러 용도 중 하나로 API를 디자인, 설명 및 테스트하는 데 도움을 줍니다. 또한 Web API Fuzz Testing에서 사용할 수 있는 HAR 파일을 생성할 수도 있습니다.
Insomnia API Client를 사용하여 HAR 파일 생성
- API를 정의하거나 가져옵니다.
- Postman v2.
- Curl.
- OpenAPI v2, v3.
- 각 API 호출이 작동하는지 확인합니다.
- OpenAPI 사양을 가져왔다면 작동하는 데이터를 추가하세요.
- API > Import/Export를 선택합니다.
- Export Data > Current Workspace를 선택합니다.
- HAR 파일에 포함할 요청을 선택합니다.
- Export를 선택합니다.
- Select Export Type 드롭다운 디렉터리에서 HAR – HTTP Archive Format을 선택합니다.
- Done을 선택합니다.
- HAR 파일을 저장할 위치와 파일 이름을 입력합니다.
Fiddler 디버깅 프록시
Fiddler는 웹 디버깅 도구입니다. HTTP 및 HTTP(S) 네트워크 트래픽을 캡처하고 각 요청을 검토할 수 있으며 요청 및 응답을 HAR 형식으로 내보낼 수 있습니다.
Fiddler를 사용하여 HAR 파일 생성
- Fiddler 홈페이지로 이동하여 로그인하세요. 계정이 없다면 먼저 계정을 생성하세요.
- API를 호출하는 페이지를 탐색합니다. Fiddler가 요청을 자동으로 캡처합니다.
- 하나 이상의 요청을 선택한 다음, 컨텍스트 메뉴에서 Export > Selected Sessions을 선택합니다.
- Choose Format 드롭다운 디렉터리에서 HTTPArchive v1.2를 선택합니다.
- 파일 이름을 입력하고 Save를 선택합니다.
Fiddler는 내보내기가 성공했음을 확인하는 팝업 메시지를 표시합니다.
Safari 웹 브라우저
Safari는 애플이 유지보수하는 웹 브라우저입니다. 웹 개발이 발전함에 따라 브라우저는 새로운 기능을 지원합니다. Safari를 사용하여 네트워크 트래픽을 탐색하고 HAR 파일로 내보낼 수 있습니다.
Safari를 사용하여 HAR 파일 생성
사전 요구사항:
-
Develop
메뉴를 활성화하세요.- Safari 환경 설정을 엽니다. Command+,를 누르거나 메뉴에서 Safari > 환경 설정을 선택합니다.
-
고급 탭을 선택한 다음
메뉴 바에 Developer 메뉴 항목 보기
를 선택합니다. - 환경 설정 창을 닫습니다.
- 웹 검사자를 엽니다. Option+Command+i를 누르거나 메뉴에서 개발 > 웹 검사자 표시를 선택합니다.
- 네트워크 탭을 선택한 다음 로그 보존을 선택합니다.
- API를 호출하는 페이지를 탐색합니다.
- 웹 검사자를 열고 네트워크 탭을 선택합니다.
- 내보낼 요청을 마우스 오른쪽 버튼으로 클릭한 다음 HAR 내보내기를 선택합니다.
- 파일 이름을 입력하고 Save를 선택합니다.
Chrome 웹 브라우저
Chrome은 Google이 유지하는 웹 브라우저입니다. 웹 개발이 발전함에 따라 브라우저는 새로운 기능을 지원합니다. Chrome을 사용하여 네트워크 트래픽을 탐색하고 HAR 파일로 내보낼 수 있습니다.
Chrome을 사용하여 HAR 파일 생성
- Chrome의 컨텍스트 메뉴에서 검사를 선택합니다.
- 네트워크 탭을 선택합니다.
- 로그 보존을 선택합니다.
- API를 호출하는 페이지를 탐색합니다.
- 하나 이상의 요청을 선택합니다.
- 마우스 오른쪽 버튼을 클릭하고 내용이 포함된 HAR로 모두 저장을 선택합니다.
- 파일 이름을 입력하고 Save를 선택합니다.
- 추가 요청을 추가하려면 동일한 파일에 선택하여 저장합니다.
Firefox 웹 브라우저
Firefox는 Mozilla가 유지하는 웹 브라우저입니다. 웹 개발이 발전함에 따라 브라우저는 새로운 기능을 지원합니다. Firefox를 사용하여 네트워크 트래픽을 탐색하고 HAR 파일로 내보낼 수 있습니다.
Firefox를 사용하여 HAR 파일 생성
- Firefox의 컨텍스트 메뉴에서 검사를 선택합니다.
- 네트워크 탭을 선택합니다.
- API를 호출하는 페이지를 탐색합니다.
-
네트워크 탭을 확인하고 요청이 기록되고 있는지 확인합니다. 네트워크 활동에 대한 자세한 정보를 보려면
요청 수행 또는 페이지 새로 고침
이라는 메시지가 표시된다면 요청을 기록하기 위해 새로 고침을 선택하세요. - 하나 이상의 요청을 선택합니다.
- 마우스 오른쪽 버튼을 클릭하고 모두 HAR로 저장을 선택합니다.
- 파일 이름을 입력하고 Save를 선택합니다.
- 추가 요청을 추가하려면 동일한 파일에 선택하여 저장합니다.
HAR 검증
HAR 파일을 사용하기 전에 민감한 정보가 노출되지 않도록 하는 것이 중요합니다.
각 HAR 파일에 대해 다음을 수행해야 합니다:
- HAR 파일의 내용 확인
- 민감한 정보가 포함되어 있는지 확인
- 민감한 정보 편집 또는 삭제
HAR 파일 내용 확인
HAR 파일의 내용은 구조화된 방식으로 표시할 수 있는 도구를 사용하여 확인하는 것을 권장합니다. 여러 HAR 파일 뷰어가 온라인에서 사용할 수 있습니다. HAR 파일을 업로드하지 않고도 컴퓨터에 설치된 도구를 사용할 수 있습니다. HAR 파일은 JSON 형식을 사용하므로 텍스트 편집기에서도 확인할 수 있습니다.
HAR 파일을 확인하는 데 권장되는 도구:
- HAR Viewer - (온라인)
- Google Admin Toolbox HAR Analyzer - (온라인)
- Fiddler - 로컬
- Insomnia API Client - 로컬
HAR 파일 내용 검토
다음 중 하나에 해당하는 항목을 HAR 파일에서 확인하세요:
- 애플리케이션에 액세스 권한을 부여하는 데 도움이 될 수 있는 정보: 인증 토큰, 인증 토큰, 쿠키, API 키와 같은 요소
- 개인 식별 정보 (PII).
민감한 정보를 편집하거나 제거하는 것이 강력히 권장됩니다.
시작 점으로 사용할 아래 내용을 체크리스트로 활용하세요. 이는 모두를 포괄하는 디렉터리은 아닙니다.
- 비밀 정보를 찾아보세요. 예를 들어, 애플리케이션이 인증을 요구하는 경우 일반적인 위치나 인증 정보를 확인하십시오:
- 인증 관련 헤더, 쿠키, 인가와 같은 항목. 이러한 헤더에는 유효한 정보가 포함될 수 있습니다.
- 인증 관련 요청. 이러한 요청의 본문에는 사용자 자격 증명이나 토큰과 같은 정보가 포함될 수 있습니다.
- 세션 토큰. 세션 토큰은 애플리케이션에 액세스할 수 있는 권한을 부여할 수 있습니다. 이러한 토큰의 위치는 다양할 수 있습니다. 헤더, 쿼리 매개변수 또는 본문에 위치할 수 있습니다.
- 개인 식별 정보를 찾아보세요
- 예를 들어, 애플리케이션이 사용자 디렉터리과 그들의 개인 데이터(전화번호, 이름, 이메일)를 검색하는 경우
- 인증 정보에는 개인 정보도 포함될 수 있습니다.
민감한 정보 편집 또는 제거
HAR 파일 내용 검토 중 발견된 민감한 정보를 편집하거나 제거하세요. HAR 파일은 JSON 파일이며 어떤 텍스트 편집기에서든 편집할 수 있습니다.
HAR 파일을 편집한 후에는 HAR 파일 뷰어에서 형식과 구조가 유지되었는지 확인하세요.
다음 예시는 Visual Studio Code 텍스트 편집기를 사용하여 헤더에서 찾은 인가 토큰을 편집하는 방법을 보여줍니다.