IT이야기2009. 4. 17. 22:56
'세상엔 다양한 기기에서 브라우저를 쓰는 유저가 있다.'는 글을 통해 PS3, PSP, iPod의 User Agent명을 확인했다. 그렇다면 휴대폰은 어떻게 표시될까 궁금하여 2탄을 마련했다. WAP페이지가 아닌 풀 브라우징폰으로 일반 웹페이지를 접속한 경우이다.

저장된 웹로그에서 브라우저명만을 스크립트를 이용해서 추출했다. 브라우저명중에 SCH-, SPH-, LG-, CANU, IM-, EV-, iPhone, Nokia, BlackBerry, lgtelecom; 문자열을 검색했다.

사용한 스크립트는 커피닉스에 올려뒀다.
그리고, 블로그에는 User Agent명의 일부만(폰별로 여러 User-Agent명은 특징적인 것 하나씩만. 그리고, 스카이폰과 아이폰은 블로그에서는 제외함. 노키아 모델 1개 제외함) 적어둔다. 자세한 커피닉스의 '풀 브라우징 휴대폰의 User Agent명(브라우저명)은?'에 있다. 추가 User-Agent를 파악하게되면 커피닉스의 글을 수정할 것이다.

1. LG 싸이언

LG 파파라치폰 CANU801EX

[ 사진 출처 : ddaily.co.kr (2008.3.24) 구글 이미지 검색 ]


* 캔유폰
캔유 파파라치폰 (캔유 7)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; 480*752;WV01.00.09;;lgtelecom;EB10-20080405-XXXXXXXXX;CANU801EX;0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

캔유 바이올렛폰 (캔유 8)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; 400*240;WV01.00.01;;lgtelecom;EB10-20090331-XXXXXXXXX;CANU-S1000;0)

블링블링 캔유폰 (캔유 9)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; 240*376;WV01.00.08;;lgtelecom;EB10-20090409-XXXXXXXXX;CANU-F1100;0)

* LG 아르고폰(터치웹폰, 모델명 : LH2300, LH2300W)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0;800*480;POLARIS 6.0;em1.0;lgtelecom;EB10-20080630-XXXXXXXXX;LG-LH2300;0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; 800*480;WV01.00.01;;lgtelecom;EB10-20081204-XXXXXXXXX;LG-LH2300W;0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

* LG 롤리팝폰
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; 240*376;WV01.00.08;;lgtelecom;EB10-20090406-XXXXXXXXX;LG-LH8000;0)

* LG 쿠키폰
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; 400*240;WV01.00.08;;lgtelecom;EB10-20090401-XXXXXXXXX;LG-LU9100;0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

* LG 아이스크림폰2
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; 240*296;WV01.00.01;;lgtelecom;EB10-20090408-XXXXXXXXX;LG-LU1600;0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

800 X 480, 320 X 240 등 해상도 정보, 폰 정보 등을 쉽게 확인할 수 있다. EB10... 으로 시작하는 부분이 무엇인지 몰라서 뒷부분 9자리를 XXXXXXXXX로 표시를 하였다. 그리고 눈여겨 볼 것은 'POLARIS 6.0'이다. 국내 인프라웨어(Infraware)의 풀브라우징이 되는 모바일 브라우저다. 현재 Widgets 1.0, RSS, Atom 1.0을 지원하는 7.0까지 나와있다. '모바일 웹브라우저 시장 현황 리뷰'에 따르면, 국내에서는 SKT와 LGT는 인프라웨어의 브라우저를 사용하고, KTF는 지오텔을 통해서 Openwave 엔진을 사용한다고 한다.

2. 삼성 애니콜

삼성 햅픽 haptic

* 삼성 더블폴더폰
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; 240*376;WV01.00.01;;lgtelecom;EB10-20090323-XXXXXXXXX;SPH-W6450;0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

* 삼성 햅틱온
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0;800*480;POLAR;lgtelecom;EB10-20090113-XXXXXXXXX;SPH-W6050;0)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0;800*480;POLARIS 6.0;em1.0;lgtelecom;EB10-20090219-XXXXXXXXX;SPH-W6050;0)

3. 노키아(Nokia)

* Nokia N81
Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN81-1/11.0.045 Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413

* Nokia N95 8GB
Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95_8GB/11.0.026; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413

심비안 OS와 Safari 브라우저를 사용하는 것을 볼 수 있다. N81모델은 네팔에서 접속했고, 언어셋은 en;q=1.0,id;q=0.5,en;q=0.5. N95모델은 캄보디아에서 접속했고, 언어셋은 en;q=1.0,vi;q=0.5.

4. RIM 블랙베리(BlackBerry)

블랙베리 Black Berry

BlackBerry9530/4.7.0.75 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/105

해외 접속자이며, 언어셋은 en-US,en;q=0.5.

Posted by 좋은진호
IT이야기2009. 4. 9. 22:56
ps3
 
iphone 아이폰
IE 8 웹브라우저에서 어느정도 들어오는지 통계를 살펴보다 극히 미비하긴 했지만 PS3, PSP, iPod에서 접속한 통계가 있었다. 정확한 브라우저명(User Agent명)을 확인하기 위해 웹로그를 살펴봤다.

첫째, 두째줄은 각각 PS3, PSP의 웹브라우저명이다. 그 다음은 iPod에서 접속한 경우이다. 언어셋은 각각 en-us, ko-kr. 5H11a는 펌웨어 버전이다.

Mozilla/5.0 (PLAYSTATION 3; 1.00)
Mozilla/4.0 (PSP (PlayStation Portable); 2.00)

Mozilla/5.0 (iPod; U; CPU iPhone OS 2_2_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5H11a Safari/525.20
Mozilla/5.0 (iPod; U; CPU iPhone OS 2_2_1 like Mac OS X; ko-kr) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5H11a Safari/525.20

참고로 iPhone, iPod 의 User Agent명 목록이다.


Posted by 좋은진호
IT이야기2009. 3. 20. 18:49
마이크로소프트의 익스플로러 8 정식 버전이 발표되었다. 익스플로러 7에 비해서는 체감상 조금 가벼워지고, 빨라졌다.
  • 이전버전과의 호환성을 고려한 '호환성 보기'
  • 구글 크롬의 '시크릿 모드'처럼 방문한 URL, 데이터 등을 저장하지 않는 'inPrivate 브라우징'
  • 악성 프로그램, 피싱 사이트 등을 차단하는 'SmartScreen 필터'
  • 소스보기 기능의 개선(줄 표시 등)
  • ...

위와 같은 새로운 기능보다는 Request 헤더를 중심으로 살펴보겠다.

기본 상태의 헤더다. 'MSIE 8.0'이라는 부분이 보인다. IE 7에서는 UA-CPU: Request 헤더를 보냈지만, IE 8에는 없다. (관련글 : MSIE 7.0 이상에서 보내는 UA-CPU 헤더  )

GET / HTTP/1.1
Accept: */*
Referer: __생략__
Accept-Language: ko-KR,en-us;q=0.7,ko;q=0.3.
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)

'호환성 보기' 체크했을 때는 브라우저 버전이 'MSIE 7.0'으로 표시되는 것을 볼 수 있다.

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)

IE 8, 익스플로러 8

[ 익스플로러 8에서 '호환성 보기'를 클릭했을 때 ]


'IEBlog'의 'The Internet Explorer 8 User-Agent String (Updated Edition)'을 살펴보면, 64비트일 때의 User-Agent 헤더를 볼 수 있다.

[ 64비트 윈도우즈에 64비트 IE ]
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0)

[ 64비트 윈도우즈에 32비트 IE ]
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0)

IE 8은 웹표준을 따르려고 했다. 따라서 웹페이지를 웹표준에 맞게 개발했다면 IE 8, 파이어폭스, 크롬 등에서 거의 동일하게 볼 수 있게 된다. 하지만 이 때문에 IE 7 에 최적화하여 개발된 페이지(즉, 표준을 따르지 않은 페이지)는 IE 8에서 페이지가 깨질 수 있다. 이 때 User-Agent를 판단하여 임시로 IE7에 맞춰서 처리하도록 할 수 있다. 물론 이 방법은 임시 해결을 위한 것이므로, 웹표준에 맞게 페이지를 변경하는 것이 가장 이상적인 방법이 될 것이다.

[ php 예 ]
<?
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 8.0')) {
echo '<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />';
// 또는 header('X-UA-Compatible: IE=EmulateIE7');
}
?>


* 관련글
   - 웹 표준 개발자의 IE8 고려사항.  (2009.3.12, 정찬명 님)

Posted by 좋은진호
IT이야기2009. 3. 9. 23:53
웹프로그래밍을 할 때, 웹브라우저명(Agent)이나 레퍼러(Referer) 정보를 화면에 출력할 경우가 있다. Request header의 웹브라우저명, 레퍼러를 누구나 쉽게 변경(위조)가 가능하다는 것을 알면서도 특별한 조치없이 바로 echo하는 경우가 많다. 일반적인 브라우저명이라면 다음과 같은 형식이다. 그대로 echo한다고 해도 문제가 되지 않을 것이다. 

Mozilla/5.0 (X11; U; Linux i686; ko; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4

그러나 다음과 같이, 브라우저명에 자바스크립트 등의 코드를 넣은다면 상황은 달라질 것이다. 피해는 XSS나 XSRF에 비해 미비할 수도 있겠지만 악의적인 임의의 자바스크립트를 실행할 수 있다.

<script>alert('hello')</script>

브라우저명에 실행가능한 형태의 코드나 자바스크립트를 넣는 것을 XAS(Cross Agent Scripting)라고 하며,
레퍼러에 넣는 것을 XRS(Cross Referer Scripting)이라고 부른다.

레퍼러를 변경해서 테스트해보자. FireFox에는 레퍼러를 변경할 수 있는 'RefControl' Addon( http://addons.mozilla.org/ko/firefox/addon/953 )이 있다. 설치 후 도구 -> RefControl Options -> Add Site 를 클릭한다.

RefControl

( Firefox RefControl Addon에서 Referer를 사용자가 설정하는 화면 )



단순히 <? echo $_SERVER['HTTP_REFERER']; ?>만 되어 있는 페이지의 경우 다음과 같이 자바스크립트가 실행되는 것을 확인할 수 있다.
XRS 임시 테스트 화면

( XRS 테스트 결과. 이 페이지는 테스트를 위해 임시로 만듬. 실제 존재하지 않음 )



XAS, XRS를 막기위해서 php의 경우 htmlspecialchars() 함수 등으로 특수문자(<, > 등)를 변환해야 한다.

[ 좋지 않은 php 코드 ]
<?
echo $_SERVER['HTTP_USER_AGENT'];
echo $_SERVER['HTTP_REFERER'];
?>

[ 안전한 형태의 php 코드 ]
<?
echo htmlspecialchars($_SERVER['HTTP_USER_AGENT']);
echo htmlspecialchars($_SERVER['HTTP_REFERER']);
?>

※ XSS(Cross Site Scripting), CSRF/XSRF(Cross Site Request Forgery)에 대한 한글 문서는 많으나 XAS, XRS에 대한 글은 거의 없어 정리했다.

Posted by 좋은진호
IT이야기2008. 12. 14. 02:21
정식 발표 이후 이틀정도 주 브라우저로 사용했다. 베타 버전 사용할 때 자꾸 브라우저가 멈춰서, 10월 이후에는 거의 사용하지 않았다. 그래서 이 글에서 얘기한 것이 그 이전에 이미 개선된 것일 수도 있다.

  • 안정적이다. 브라우저가 죽는 경우가 없었고, 먹통이 되지도 않았다.
  • '알라딘'에서 책 미리보기시 '이전'과 '다음'버튼 눌러도 동작한다. 이전 사용할 때 안되어서 FF 사용했었다.
  • 시크릿 모드(Ctrl+Shift+N) 창에서 Ctrl+N을 누르면 일반 창으로 빠져 나올 수 있다. 전에는 Ctrl+N를 눌러도 계속 시크릿 모드 창만 떴다.

  • URL을 UTF-8로 보내서, 한글 파일 링크 클릭시 다운로드 안되는 것은 여전하다.
         (현실은 아직 EUC-KR한글 파일명이 많다.)
         (※ 파이어폭스는 about:config한 후 network.standard-url.encode-utf8 를 false 로 설정할 수 있다. 파이어폭스처럼 설정가능하면 얼마나 좋을까...)

Posted by 좋은진호
IT이야기2008. 9. 3. 18:32
구글 크롬(Chrome) 베타에서 한글 파일 다운로드가 안되어서, 파이어폭스3의 about:config 처럼 설정하는게 있는지 찾아봤다. 아쉽게도 없었다. 그래서 about: 관련된 뭔가 있을 것 같아, 쥐잡듯이 뒤져봤다. 오~ 여러 개가 나온다. 초등학교 때 소풍가서 보물 찾았을 때 기분이 든다. 함께 찾아주신 '쿠사리줄까'님, 그리고 about: 명령을 해준 범냉이, sCag, 미르, 티니님께 감사.  ^^

  • about:blank
  빈 페이지

  • about:version 또는about:, chrome-resource://about/
  크롬의 버전 정보를 보여준다.
사용자 삽입 이미지

  • about:memory
  메모리 상태를 보여준다. 이는 '개발자 정보' -> '작업 관리자' -> '전문 통계'를 클릭했을 때와 같은 페이지다.
  이미지가 잘 안보이겠지만, 크롬, IE7, 파이어폭스3를 함께 띄워둔 상태이다.
사용자 삽입 이미지

  •  about:histograms
  흥미로운 정보이긴 한데, 의미를 정확히 모르겠다.

  • about:stats
  상태 정보를 보여준다. 맨 위에 'Shhh! This page is secret!'라는 문구가 웃음을 자아낸다. ^^
사용자 삽입 이미지

  • about:network
  네트웍 관련 상태 정보를 얻을 수 있는데, 이를테면 페이지를 읽을 때 읽어오는 파일 등을 트랙킹할 수 있다.
  화면에서는 다음 접속 후에 구글에 접속할 때의 트래킹된 결과이다.
사용자 삽입 이미지

  • about:plugins
  설치된 플러그인 정보를 보여준다.
사용자 삽입 이미지

  • about:crash
  '앗, 이런! 웹페이지를 표시하는 도중 문제가 발생했습니다. 계속하려면 새로고침을 누르거나 다른 페이지로 이동하세요.'라는 문구를 뿌려준다. 페이지 로딩시 문제 생길 때 이 페이지를 보여주려고 한 것 아닐까.
사용자 삽입 이미지

  • about:shorthang 과 about:hang
  표시되는 내용은 없다. hang은 페이지를 종료할 것인지 대기할 것인지를 물어보는 창이 뜨고, shorthang은 hang처럼 창이 뜨는데, 아주 잠깐 떴다가 선택을 하지 않으면 about:blank로 이동한다.

  • about:cache 또는 view-cache:
  캐싱된 문서 목록을 보여준다.
사용자 삽입 이미지

  • view-cache:stats
  캐싱된 문서 상태 정보를 보여준다. 'no disk cache'는 캐싱된게 없다는 표시
사용자 삽입 이미지

  • about:dns
  DNS 프리페칭 정보를 보여준다. 크롬이 페이지의 로딩 속도를 개선하기 위해서 DNS 프리페칭을 하는데, 이는 호스트에 대한 IP정보를 미리 가져온 다음에 웹요청하게 되면 더욱 빠르게 표시할 수 있기 때문이다.
사용자 삽입 이미지

  • about:internets
  윈도우의 화면보호기를 보는 것 같다. 이게 뭘 하기 위한 것인지는 모르겠으나 흥미롭다. 맨 위에 Don't Clog the Tubes! 가 보인다. 절대 '관'을 건들지 말기를... 건들면 화면이 멈춰버리는 것 같이 먹통이 된다. ^^
사용자 삽입 이미지

  • chrome-resource://new-tab/
  '자주 방문한 페이지' 기본 형태

2008/09/03 - [IT이야기] - 구글 웹브라우저, 크롬 사용기

Posted by 좋은진호
IT이야기2008. 9. 3. 13:21
구글 홈(www.google.co.kr)에서 현재 크롬(Chrome) 베타버전을 받을 수 있다. 윈도우 XP와 비스타용만 제공하며, 리눅스와 맥용은 현재 개발중이다. 크롬에 대한 자세한 내용은 http://www.google.com/chrome/?hl=ko
에서 살펴볼 수 있다. 느낌 위주의 간단한 사용기를 적어본다.

사용자 삽입 이미지

사용자 삽입 이미지

  • 느낌상 아주 가볍다.
  • 심플하다. 굵은 선보다는 가느다란 선. 메뉴조차 검색창 오른쪽에 작은 버튼으로만 보인다.
사용자 삽입 이미지

  •   페이지 로딩 속도가 빠르다.
크롬 옵션 -> 고급설정에 보면 'DNS 프리페칭으로 페이지 로드 속도 개선하기' 옵션이 체크되어 있는데, 이 것도 속도 향상에 한 몫한 것 같다. 그러나 가끔 느리거나 멈춰버린 것 같은 현상이 발생한다. CPU를 100% 잡고 있을 때도 있다. 크롬이 가장 먼저 해결해야할 문제이다. 특히 티스토리의 글쓰기 페이지에서 이미지 등록할 때(플래쉬로 동작) 글을 쓰기가 힘들 정도였다. (이글은 파이어폭스(Firefox)에서 쓰고 있다.)
  • 일반적인 새 탭, 새 창 이외에 '새 시크릿 창' 개념이 등장했다.
이 시크릿 창에서 열어본 페이지는 방문 기록, 검색 기록등이 남지 않으며, 쿠키 또한 남지 않는다. 함께 사용하는 데스크탑에서는 바로 이런게 필요했다.
사용자 삽입 이미지
  •   '새 탭'을 열 때 자주 방문한 페이지를 보여준다.
사용자 삽입 이미지

  •   '소스 보기'의 심플함
  파이어폭스는 새창에서 보여주고, 익스플로러는 메모장에서 보여준다. 그러나 크롬은 소스를 새로운 탭에서 보여주며, 마치 개발용 에디터에서 보는 것처럼 소스으 라인를 표시해준다.
사용자 삽입 이미지

  •   웹서버에 남는 브라우저명은 다음과 같다.
  Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13
  •   작업 관리자를 보면 파이어폭스 등은 한개의 프로세스가 뜨지만, 크롬은 2개 이상 뜬다.
 새로운 탭을 열면 이 프로세스는 증가한다. 그래서, 크롬에는 자체 '작업 관리자'를 제공하며, 구글에 따르면 탭별로 독립적으로 돌아가므로 하나가 다운되어도 다른 탭은 영향이 없다고 한다.

사용자 삽입 이미지

사용자 삽입 이미지

  •  웹 개발자를 위한 자바 스크립트 디버깅 메뉴, 요소 검사 기능 등을 제공한다.
사용자 삽입 이미지


해외에서는 익스플로러와 파이어폭스 모두 위협할만하다. 국내에서는 익스플로러에서 사용할 페이지는 어차피 그대로 익스플로러를 사용하게 될 것이니, 파이어폭스는 긴장해야하지 않을까. 파이어폭스처럼 강력한 확장 모듈만 제공해준다면 최고의 조건이다.

Posted by 좋은진호