hmk run dev

Sec-CH-UA(Security-ClientHint-UserAgent) 본문

카테고리 없음

Sec-CH-UA(Security-ClientHint-UserAgent)

hmk run dev 2024. 4. 16. 22:39

웹 브라우저의 보안 클라이언트 힌트 (Sec-CH-UA) 이해하기

웹 브라우저는 서버에게 어떻게 동작하고 어떤 환경에서 실행되고 있는지에 대한 정보를 전송하기 위해 다양한 헤더를 사용합니다. 이 중에서도 "Sec-CH-UA" 헤더는 보안 클라이언트 힌트의 사용자 에이전트 정보를 제공하는 중요한 역할을 합니다. 이번 글에서는 "Sec-CH-UA" 헤더의 각 필드에 대해 자세히 알아보겠습니다.

 

 

"Sec-CH-UA" 관련된 헤더는 주로 브라우저에 의해 자동으로 생성되며, 클라이언트 측에서 서버에 전송됩니다. 헤더는 브라우저의 사용자 에이전트 정보와 함께 페이지 요청에 포함됩니다.

 

유저가 어떤 환경에서 우리 서비스를 사용하는지에 대한 정보를 수집할 수도 있으며

웹사이트 크롤링을 방어할 때  Sec-CH-UA 포함 여부를 검사해 브라우저에서 보낸 요청인지 식별하는 경우가 꽤 있습니다.

 


도입이유 

기존에 User-Agent HTTP 헤더에서 브라우저, OS, 사용자의 기기 정보 등 사용자 에이전트 정보를 얻을 수 있었음

 

But

User-Agent string에는 많은 엔트로피(정보량)가 담겨 있어 개인정보 침해 문제 이슈가 있었음

Chrome은 이러한 문제를 해결하고자 Client Hints를 헤더에 포함하는 방향으로 변경

 


Sec-CH-UA

  • Google Chrome: 버전 "123"
  • Not:A-Brand: 버전 "8"
  • Chromium: 버전 "123"

 

헤더의 가장 기본적인 필드는 웹 브라우저의 이름과 버전 정보입니다. 위의 예시에서는 "Google Chrome", "Not:A-Brand", "Chromium" 등의 브라우저들과 그들의 버전 정보가 포함되어 있습니다.

 


Sec-CH-UA-Arch

  • Arch: "arm"

이 필드는 웹 브라우저가 실행되고 있는 아키텍처 정보를 제공합니다. 예시에서는 "arm" 아키텍처를 사용하고 있습니다.

Sec-CH-UA-Bitness

  • Bitness: "64"

웹 브라우저의 비트 버전 정보를 나타냅니다. 위의 예시에서는 64비트 버전을 사용하고 있습니다.

 


Sec-CH-UA-Full-Version-List

  • Google Chrome: "123.0.6312.122"
  • Not:A-Brand: "8.0.0.0"
  • Chromium: "123.0.6312.122"

이 필드는 각 브라우저의 전체 버전 정보를 제공합니다.

 


Sec-CH-UA-Mobile

  • Mobile:? 0

웹 브라우저가 모바일 장치에서 실행되고 있는지의 여부를 나타냅니다. "?"는 이 필드의 값이 불분명하다는 것을 의미합니다.

 


Sec-CH-UA-Model

  • Model: ""

모바일 장치의 모델 정보를 제공합니다. 위의 예시에서는 정보가 제공되지 않았습니다.

 


 

Sec-CH-UA-Platform

  • Platform: "macOS"

웹 브라우저가 실행되고 있는 플랫폼 정보를 제공합니다.

 


Sec-CH-UA-Platform-Version

  • Platform Version: "13.2.1"

플랫폼의 버전 정보를 제공합니다.

 


Sec-CH-UA-Wow64

  • Wow64:? 0

이 필드는 웹 브라우저가 32비트 환경에서 64비트 애플리케이션으로 실행되고 있는지의 여부를 나타냅니다.

 

 


Reference

 

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-UA

Comments