브라우저 정보 감지기

-
언어
-
플랫폼
-
화면

당신의 브라우저는 방문하는 웹사이트에 실제로 무엇을 알려줄까요? 이 페이지는 브라우저가 노출하는 모든 client-side info, user agent, rendering engine, version, OS, device category, viewport와 screen size, timezone, language preferences, do-not-track setting, public IP, 를 모아 보여줍니다. 매 request에서 어떤 정보가 fingerprinting되는지 정확히 확인할 수 있습니다.

감지기가 정보를 수집하는 방법

  1. 1

    navigator object 읽기

    userAgent, platform, language, languages, cookieEnabled, doNotTrack, hardwareConcurrency 등을 browser에서 직접 query합니다.

  2. 2

    User agent string 파싱

    UA string을 최신 browser/engine/OS database와 대조해 brand, version, family를 추출합니다.

  3. 3

    Screen과 window query

    pixel density를 위해 window.innerWidth/Height, screen.width/height, screen.colorDepth, devicePixelRatio를 확인합니다.

  4. 4

    Echo service로 IP 감지

    IP-echo endpoint에 한 번 request해 public IPv4/IPv6를 받습니다. 아무것도 저장하지 않으며, 방문할 때마다 새로 감지합니다.

감지기가 보여주는 항목

항목 출처 예시
브라우저 + 버전 UA string + Client Hints Chrome 122.0.6261
렌더링 엔진 UA에서 도출 Blink
OS + 버전 UA + platform Windows 11, 64-bit
기기 유형 UA + 터치 지원 데스크톱 / 태블릿 / 모바일
뷰포트 window.innerWidth / innerHeight 1440 × 820 px
화면 screen.width / screen.height 2560 × 1440 px
픽셀 비율 window.devicePixelRatio 2
색 깊이 screen.colorDepth 24 bits
기본 언어 navigator.language ko-KR
모든 언어 navigator.languages ko-KR, ko, en
시간대 Intl.DateTimeFormat Asia/Seoul (UTC+9)
Do Not Track navigator.doNotTrack unset / 1 / 0
Cookie 사용 가능 navigator.cookieEnabled true
공인 IP Echo endpoint 203.0.113.42

왜 중요한가요?

  • Fingerprinting: 이 값들의 조합은 cookie 없이도 session을 넘나들며 browser를 식별할 만큼 고유한 경우가 많습니다. 정량적 entropy estimate는 EFF의 Cover Your Tracks project를 참고하세요.
  • Privacy leakage: fonts, WebGL renderer, audio context 같은 field는 entropy를 더 높입니다. Firefox의 “resistFingerprinting”과 Tor Browser의 standardised profile은 이런 signal을 줄입니다.
  • Debugging: 누군가 “제 브라우저에서 작동하지 않아요”라고 보고하면, 이 field를 확보하는 것이 문제 재현의 첫 단계입니다.

한계

  • UA parsing은 browser release마다 바뀌는 pattern에 의존합니다. 새로운 Edge version은 parser가 업데이트될 때까지 잠시 Chrome으로 보일 수 있습니다.
  • Private relay(iCloud, Warp)는 실제 IP를 가립니다. 이 경우 감지기는 relay IP를 보여줍니다.
  • Chromium browser에서는 Client Hints가 UA를 대체합니다. 표시되는 UA는 “reduced” frozen string일 수 있습니다.

자주 묻는 질문

아니요. 모든 field는 page load 시 감지되고, 다른 곳으로 이동하면 버려집니다. IP echo service도 request를 저장하지 않습니다.

User agent와 timezone은 dev tools나 extension으로 spoof할 수 있습니다. Screen size, fonts, WebGL renderer는 page rendering을 깨뜨리지 않고 속이기 더 어렵습니다. Privacy-focused browser는 일부 compatibility를 희생해 대부분을 spoof합니다.

iCloud Private Relay, Cloudflare Warp, VPN, corporate proxy를 사용하면 감지된 IP는 해당 intermediary입니다. browser가 multi-path를 쓰면 IP-echo service마다 다른 intermediary를 볼 수도 있습니다.

UA를 spoof해도 server는 TLS fingerprinting, feature detection(어떤 CSS property가 작동하는지), timing quirks로 종종 추정할 수 있습니다. 완전한 익명성에는 UA 조정만이 아니라 Tor Browser 같은 것이 필요합니다.

관련 도구