"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Chrome, Safari 및 Firefox의 사용자 에이전트 감소

Chrome, Safari 및 Firefox의 사용자 에이전트 감소

2024-08-06에 게시됨
검색:585

User Agent Reduction in Chrome, Safari & Firefox

소개: 사용자 에이전트 감소 및 클라이언트 힌트란 무엇입니까?

최근 몇 년 동안 개인 정보 보호 문제로 인해 브라우저가 사용자 에이전트 문자열을 처리하는 방식이 크게 바뀌었습니다. 전통적으로 브라우저 및 장치 정보를 식별하는 데 사용되었던 User-Agent 문자열은 공유되는 정보의 양을 제한하여 사용자 개인정보를 보호하기 위해 축소되었습니다. User-Agent 감소의 한계를 해결하기 위해 클라이언트 힌트가 솔루션으로 등장하여 필요한 정보를 공유할 수 있는 보다 통제되고 개인정보를 존중하는 방법을 제공합니다.

여기에서 전체 블로그 게시물을 읽어보세요.

사용자 에이전트 문자열의 간략한 역사

User-Agent 문자열은 Tim Berners-Lee의 WorldWideWeb을 시작으로 초기 웹 브라우저까지 거슬러 올라갑니다. 처음에는 기본 브라우저 및 버전 정보를 제공하는 간단했습니다. 시간이 지남에 따라 운영 체제, 장치 유형 등에 대한 자세한 데이터를 포함하도록 발전했으며 이는 웹 분석 및 사용자 경험 최적화에 유용한 것으로 입증되었습니다. 하지만 이 세부 정보로 인해 기기 지문 채취도 가능해지며 개인 정보 보호 문제가 제기됩니다.

사용자 에이전트 감소란 무엇입니까?

User-Agent 감소는 사용자 개인 정보를 보호하기 위해 User-Agent 문자열의 정보를 최소화하는 것을 목표로 합니다. 특정 OS 버전, 하드웨어 모델 등 엔트로피가 높은 정보가 줄어듭니다. 예를 들어, Google의 Chrome은 이제 덜 자세한 User-Agent 문자열을 보고합니다:

  • 이전: Mozilla/5.0(Linux; Android 13; Pixel 7) AppleWebKit/537.36(KHTML, like Gecko) Chrome/95.2.1.0 Mobile Safari/537.36
  • 이후: Mozilla/5.0(Linux; Android 10; K) AppleWebKit/537.36(KHTML, like Gecko) Chrome/95.0.0.0 Mobile Safari/537.36

마찬가지로 Firefox와 Safari는 고유한 정책에 따라 약간의 차이가 있지만 자체 버전의 User-Agent Reduction을 구현했습니다.

클라이언트 힌트는 어떻게 작동하나요?

클라이언트 힌트는 개인 정보 보호를 고려한 방식으로 사용자 장치 및 브라우저에 대한 특정 고엔트로피 정보를 요청하는 방법을 제공합니다. 클라이언트 힌트에 접근하는 주요 방법은 두 가지가 있습니다:

  1. HTTP 요청 헤더: 웹사이트는 HTTP 요청 헤더를 사용하여 사용자의 브라우저 및 장치에 대한 특정 정보를 요청할 수 있습니다. 이는 일반적으로 자사 컨텍스트에서 사용되며, 자세한 사용자 정보는 타사 리소스가 아닌 기본 웹사이트에만 액세스할 수 있습니다.
  2. JavaScript API: 클라이언트 힌트는 JavaScript 내의 navigator.userAgentData 개체를 통해 액세스할 수도 있습니다. 이를 통해 추가 헤더 설정 없이 아키텍처, 모델, 플랫폼 버전 등 특정 정보에 대한 동적 쿼리가 가능합니다.

클라이언트 힌트 구현

HTTP 요청 헤더 사용

HTTP 헤더를 통해 클라이언트 힌트를 구현하려면 서버는 HTTP 응답에 적절한 헤더를 설정하여 향후 요청에 이러한 힌트를 포함하도록 브라우저에 신호를 보내야 합니다. 예를 들어:

Accept-CH: Sec-CH-UA-Platform-Version

브라우저의 후속 요청에는 플랫폼 버전이 포함됩니다.

Sec-CH-UA-Platform-Version: "14.5.0"

자바스크립트 API 사용

동적 애플리케이션의 경우 JavaScript API가 유연성을 제공합니다. 예를 들어, getHighEntropyValues ​​메소드를 사용하면:

if (navigator.userAgentData) {
    navigator.userAgentData.getHighEntropyValues(['architecture', 'model', 'platformVersion'])
        .then(ua => {
            console.log(ua);
        });
}

개발자를 위한 권장 사항

특정 요구 사항에 따라 사용자 환경 데이터를 수집하는 다양한 방법을 선택할 수 있습니다.

  • 기능 감지: 가능하다면 기존 브라우저 JavaScript API를 사용하세요. 이는 사용자 에이전트 문자열에 의존하는 것보다 더 안정적이고 미래에도 사용할 수 있습니다.
  • 낮은 엔트로피 정보: 장치 유형과 같은 기본 세부정보의 경우 사용자 에이전트 문자열이면 충분할 수 있습니다.
  • 고엔트로피 정보: 자세한 정보가 필요하고 도메인을 제어할 수 있는 경우 클라이언트 힌트를 사용하세요.

결론

사용자 에이전트 감소 및 클라이언트 힌트는 웹사이트가 최적의 기능을 위해 필요한 정보를 수집할 수 있도록 하면서 사용자 개인 정보 보호를 강화하는 중요한 단계를 나타냅니다. 개발자는 이러한 기술을 이해하고 구현함으로써 상세한 사용자 데이터에 대한 필요성과 개인 정보 보호 및 성능 고려 사항 사이의 균형을 맞출 수 있습니다.

자세한 블로그 게시물에서 자세히 알아보세요.

릴리스 선언문 이 글은 https://dev.to/corbado/user-agent-reduction-in-chrome-safari-firefox-3g6g?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3