HAR 파일 생성

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

HTTP Archive (HAR) 형식 파일은 HTTP 요청 및 HTTP 응답에 대한 정보를 교환하기 위한 업계 표준입니다. HAR 파일의 내용은 JSON 형식이며 웹사이트와의 브라우저 상호작용을 포함합니다. 파일 확장자는 .har가 일반적으로 사용됩니다.

HAR 파일은 웹 API Fuzz Testing의 일환으로 GitLab CI/CD 파이프라인에서 사용할 수 있습니다.

경고:
HAR 파일은 웹 클라이언트와 웹 서버 간에 교환되는 정보를 저장합니다. 인증 토큰, API 키 및 세션 쿠키와 같은 민감한 정보도 저장할 수 있습니다. 리포지토리에 추가하기 전에 HAR 파일 내용을 검토할 것을 권장합니다.

HAR 파일 생성

HAR 파일은 수동으로 생성하거나 웹 세션을 기록하기 위한 특수 도구를 사용하여 생성할 수 있습니다. 특수 도구를 사용하는 것이 좋습니다. 그러나 이러한 도구로 생성된 파일이 민감한 정보를 노출하지 않도록 하고 안전하게 사용할 수 있도록 하는 것이 중요합니다.

다음 도구를 사용하여 네트워크 활동에 기반하여 HAR 파일을 생성할 수 있습니다. 이 도구들은 자동으로 네트워크 활동을 기록하고 HAR 파일을 생성합니다:

  1. GitLab HAR Recorder.
  2. Insomnia API Client.
  3. Fiddler 디버깅 프록시.
  4. Safari 웹 브라우저.
  5. Chrome 웹 브라우저.
  6. Firefox 웹 브라우저.

경고:
HAR 파일은 인증 토큰, API 키 및 세션 쿠키와 같은 민감한 정보를 포함할 수 있습니다. 리포지토리에 추가하기 전에 HAR 파일 내용을 검토할 것을 권장합니다.

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 다운로드 페이지Build Tools for 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 파일 생성

  1. 프록시 포트와 HAR 파일 이름으로 레코더를 시작합니다.
  2. 프록시를 사용하여 브라우저 작업을 완료합니다.
    1. 프록시를 사용하고 있는지 확인하세요!
  3. 레코더를 중지합니다.

HAR에 모든 요청이 포함되어 있는지 확인하려면, 다음과 같은 온라인 HAR 뷰어를 사용하세요:

Insomnia API Client

Insomnia API Client는 다양한 용도로 API를 설계하고 설명하며 테스트하는 데 도움을 주는 API 설계 도구입니다. 이를 사용하여 Web API Fuzz Testing에서 사용할 수 있는 HAR 파일을 생성할 수도 있습니다.

Insomnia API 클라이언트를 사용하여 HAR 파일 생성하기

  1. API를 정의하거나 가져옵니다.
    • Postman v2.
    • Curl.
    • OpenAPI v2, v3.
  2. 각 API 호출이 작동하는지 확인합니다.
    • OpenAPI 사양을 가져온 경우, 작동하는 데이터를 추가합니다.
  3. API > 가져오기/내보내기를 선택합니다.

  4. 데이터 내보내기 > 현재 작업 공간을 선택합니다.

  5. HAR 파일에 포함할 요청을 선택합니다.

  6. 내보내기를 선택합니다.

  7. 내보내기 형식 선택 드롭다운 목록에서 HAR – HTTP 아카이브 형식을 선택합니다.

  8. 완료를 선택합니다.

  9. HAR 파일을 위한 위치와 파일 이름을 입력합니다.

Fiddler 디버깅 프록시

Fiddler는 웹 디버깅 도구입니다. HTTP 및 HTTP(S) 네트워크 트래픽을 캡처하고 각 요청을 검사할 수 있습니다. 또한 요청과 응답을 HAR 형식으로 내보낼 수 있습니다.

Fiddler로 HAR 파일 생성하기

  1. Fiddler 홈페이지로 가서 로그인합니다. 계정이 없으면 먼저 계정을 생성합니다.

  2. API를 호출하는 페이지를 탐색합니다. Fiddler는 자동으로 요청을 캡처합니다.

  3. 하나 이상의 요청을 선택한 다음, 컨텍스트 메뉴에서 내보내기 > 선택된 세션을 선택합니다.

  4. 형식 선택 드롭다운 목록에서 HTTPArchive v1.2를 선택합니다.

  5. 파일 이름을 입력하고 저장을 선택합니다.

Fiddler는 내보내기가 성공했음을 확인하는 팝업 메시지를 표시합니다.

Safari 웹 브라우저

Safari는 Apple에서 유지 관리하는 웹 브라우저입니다. 웹 개발이 진화함에 따라 브라우저는 새로운 기능을 지원합니다. Safari를 사용하여 네트워크 트래픽을 탐색하고 이를 HAR 파일로 내보낼 수 있습니다.

Safari로 HAR 파일 생성하기

사전 요구 사항:

  • Develop 메뉴 항목을 활성화합니다.

    1. Safari의 환경 설정을 엽니다. Command+,를 누르거나 메뉴에서 Safari > 환경 설정을 선택합니다.

    2. 고급 탭을 선택한 다음, 메뉴 바에 개발 메뉴 항목 표시를 선택합니다.

    3. 환경 설정 창을 닫습니다.

  1. 웹 검사기를 엽니다. Option+Command+i를 누르거나 메뉴에서 Develop > 웹 검사기 표시를 선택합니다.

  2. 네트워크 탭을 선택하고 로그 유지를 선택합니다.

  3. API를 호출하는 페이지를 탐색합니다.

  4. 웹 검사기를 열고 네트워크 탭을 선택합니다.

  5. 내보낼 요청을 마우스 오른쪽 버튼으로 클릭하고 HAR 내보내기를 선택합니다.

  6. 파일 이름을 입력하고 저장을 선택합니다.

Chrome 웹 브라우저

Chrome은 Google에서 유지 관리하는 웹 브라우저입니다. 웹 개발이 진화함에 따라 브라우저는 새로운 기능을 지원합니다. Chrome을 사용하여 네트워크 트래픽을 탐색하고 이를 HAR 파일로 내보낼 수 있습니다.

Chrome으로 HAR 파일 생성하기

  1. Chrome 컨텍스트 메뉴에서 검사를 선택합니다.

  2. 네트워크 탭을 선택합니다.

  3. 로그 유지를 선택합니다.

  4. API를 호출하는 페이지를 탐색합니다.

  5. 하나 이상의 요청을 선택합니다.

  6. 마우스 오른쪽 버튼을 클릭하고 모두 내용을 포함하여 HAR로 저장을 선택합니다.

  7. 파일 이름을 입력하고 저장을 선택합니다.

  8. 추가 요청을 추가하려면, 선택하고 동일한 파일에 저장합니다.

Firefox 웹 브라우저

Firefox는 Mozilla에서 운영하는 웹 브라우저입니다. 웹 개발이 발전함에 따라 브라우저는 새로운 기능을 지원합니다. Firefox를 사용하면 네트워크 트래픽을 탐색하고 이를 HAR 파일로 내보낼 수 있습니다.

Firefox로 HAR 파일 만들기

  1. Firefox 컨텍스트 메뉴에서 검사를 선택합니다.
  2. 네트워크 탭을 선택합니다.
  3. API를 호출하는 페이지를 탐색합니다.
  4. 네트워크 탭을 확인하고 요청이 기록되고 있는지 확인합니다. Perform a request or Reload the page to see detailed information about network activity라는 메시지가 표시되면, 요청을 기록하기 위해 새로 고치기를 선택합니다.
  5. 하나 이상의 요청을 선택합니다.
  6. 오른쪽 클릭 후 모두 HAR로 저장을 선택합니다.
  7. 파일 이름을 입력하고 저장을 선택합니다.
  8. 추가 요청을 추가하려면, 선택하고 동일한 파일에 저장합니다.

HAR 검증

HAR 파일을 사용하기 전에 민감한 정보가 노출되지 않았는지 확인하는 것이 중요합니다.

각 HAR 파일에 대해:

  • HAR 파일의 내용을 확인하세요.
  • 민감한 정보에 대해 HAR 파일을 검토하세요.
  • 민감한 정보를 편집하거나 제거하세요.

HAR 파일 내용 보기

HAR 파일의 내용을 구조화된 방식으로 표시할 수 있는 도구에서 HAR 파일의 내용을 보는 것을 권장합니다. 여러 HAR 파일 뷰어가 온라인에서 제공됩니다. HAR 파일을 업로드하지 않으려면, 컴퓨터에 설치된 도구를 사용할 수 있습니다. HAR 파일은 JSON 형식을 사용하므로 텍스트 편집기에서도 볼 수 있습니다.

HAR 파일 보기 위해 권장되는 도구는 다음과 같습니다:

HAR 파일 내용 검토

다음 중 어느 것이라도 HAR 파일을 검토하세요:

  • 애플리케이션에 대한 접근을 grant하는 데 도움이 될 수 있는 정보, 예를 들어: 인증 토큰, 쿠키, API 키.
  • 개인 식별 정보(PII).

민감한 정보가 발견되면 편집하거나 제거하는 것을 강력히 권장합니다.

다음 사항을 체크리스트로 사용하여 시작하세요. 완전한 목록은 아닙니다.

  • 비밀을 찾으세요. 예를 들어: 애플리케이션이 인증을 요구하는 경우, 인증 정보를 확인하세요:
    • 인증 관련 헤더. 예를 들어: 쿠키, 인증. 이러한 헤더에는 유효한 정보가 포함될 수 있습니다.
    • 인증 관련 요청. 이러한 요청의 본문에는 사용자 자격 증명이나 토큰과 같은 정보가 포함될 수 있습니다.
    • 세션 토큰. 세션 토큰은 애플리케이션에 대한 접근을 grant할 수 있습니다. 이러한 토큰의 위치는 다양할 수 있습니다. 헤더, 쿼리 매개변수 또는 본부에 있을 수 있습니다.
  • 개인 식별 정보를 찾으세요:
    • 예를 들어, 애플리케이션이 사용자 목록 및 개인 데이터를 검색하는 경우: 전화번호, 이름, 이메일.
    • 인증 정보는 개인 정보를 포함할 수도 있습니다.

민감한 정보 편집 또는 제거

HAR 파일 내용 검토 중 발견된 민감한 정보를 편집하거나 제거하세요. HAR 파일은 JSON 파일이며, 모든 텍스트 편집기에서 편집할 수 있습니다.

HAR 파일을 편집한 후, HAR 파일 뷰어에서 열어 그 형식과 구조가 intact한지 확인하세요.

다음 예시는 헤더에서 발견된 인증 토큰을 편집하기 위해 Visual Studio Code 텍스트 편집기를 사용하는 것을 보여줍니다.

Visual Studio Code에서 편집된 인증 토큰