Rebecca Burnett
514 words
3 minutes
User Agent
User Agent
- 자기 자신에 대한 식별 정보를 의미한다. 식별 정보에는 예를 들어
브라우저 이름
,버전
,호스트 OS
,기기 종류
등이 있다. - 이 정보를 통하여 클라이언트를 식별하여 클라이언트에 따라 적절한 콘텐츠를 제공할 수 있다.
HTTP 요청 헤더에서의 User-Agent
- 클라이언트가 서버에 요청을 보낼 때 포함되는 정보이다.
- 이 정보를 통해 서버는 클라이언트의 정보에 맞게 최적화 된 정보를 제공할 수 있다.
사용 예제
Navigator.userAgent
- 브라우저 API (Client Side에서만 사용할 수 있음을 주의하라) 이며, 현재 브라우저의 user agent 문자열을 반한한다.
- 다음과 같은 정보를 가진다 (출처 :
Nagicator.userAgent | mdn web docs
)
userAgent = appCodeName/appVersion number (Platform; Security; OS-or-CPU;Localization; rv: revision-version-number) product/productSubApplication-Name Application-Name-version
보안 취약점
- 이 필드에 가능한 적은 정보를 제공하여야 한다. 단순히
userAgent
에 접근함으로서 클라이언트의 정보를 알 수 있기 때문이다. (Sniffing
기법)- 이를 악용하여 현재 구글 검색 시 결과에서 스팸사이트가 발생하는 현상 이 있다.
- 이는 스팸 사이트가 구글 웹 로봇을 겨냥하여, 접속한 user agent가 구글봇인 경우 정상적인 사이트를 보여주고, 그 외에는 스팸 사이트로 리다이렉션 시키는 방식으로 동작한다.
- 참고 : [정보] 구글 검색 결과에서 스팸 사이트가 발생하는 원인 및 해결법
- 이를 악용하여 현재 구글 검색 시 결과에서 스팸사이트가 발생하는 현상 이 있다.
- 또한 브라우저 사용자 역시 원하는 경우 이 필드의 값을 변경할 수 있다. (
UA spoofing
)