🖥️ 정부 사이트의 브라우저 체크 오류

2014-03-29 by real21c

어이없는 정부 기관 홈페이지

  • 법원으로부터 금전공탁통지서라는 생소한 등기가 발송되어 집으로 왔다. 2009년 SM온라인(구 다모임)회사가 파산되어 받지 못한 돈, 오랫동안 잊고 지냈는데, 얼마 안 되는 금액이지만 찾아가라는 내용의 통지서, 야호!!
  • 전자공탁 홈페이지에서 본인 인증 후, 온라인으로 신청하여 받을 수 있다고 해서 로그인을 시도했지만, 안된다.
  • 나는 분명히 IE11 인데, 파이어폭스로 인식한다.
  • 크롬 브라우저를 주로 사용하지만, 우리나라의 금융/정부기관 홈페이지에 연결할 때는 IE를 사용하는데, 전자공탁 홈페이지](http://ekt.scourt.go.kr/)에서 호환성 문제가 발생했다. ekc-1.jpg

  • 키보드 보안프로그램을 설치하다 꼬이고, 웹생태계는 파괴될 때로 엉망인 모두 반성해야 한다. 그래도 이런 오류도 1개 이상 나오면 뭔가 은행/카드/정부 사이트에 잘 들어왔구나(?) 생각이 든다.
  • 여튼 빨리 신청해서 잔금을 받아야하는데, 궁금해서 소스를 깠다..
  1. 브라우저를 체크하는 스크립트가 분산되어 있는 것으로 봐서, 여러명의 작업자가 진행을 한것 같음.
  2. 디렉토리 네이밍을 봐서는 nProtect 보안 업체의 삽입된 스크립트를 이용하는 듯..
    http://ekt.scourt.go.kr/js/common/util.js
    http://ekt.scourt.go.kr/js/nprotect/netizen55.js
  3. 아무튼 IE 11을 파이어폭스로 인식하는 스크립트를 찾았다. 아래 요놈!!
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    var isNetS = !isMoz && (sUserAgent.lastIndexOf("Gecko") > -1) && (sUserAgent.indexOf("Navigator") > -1);
    var isMoz = !isNetS && (sUserAgent.indexOf("Mozilla")==0) && (navigator.appName=="Netscape") && (sUserAgent.indexOf("Navigator") > -1)==false;
    if ( isMoz ){
    var reMoz = new RegExp(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent));
    reMoz.test(sUserAgent);
    var ffversion = new Number(RegExp.$1);
    if ( ffversion >= 2.0){
        appName = "FireFox";
        issupport = true;
    }
    else{
        alert ("[Firefox] This Browser version does not supports.");
        issupport =false;
    }
    }
    
  • 전체적인 로직으로 봤을 때, 특정 토큰을 체크하여 브라우저를 체크하고, 문제도 없는 거 같은데? 이상하다 싶어서 User Agent 를 검색해봤는데, IE 11부터는 스펙이 변경이 되었다. User Agent 스펙이 변경되면서 MSDN 에 보기 좋게 업데이트가 잘 되어 있다. http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx

  • 기존에는 MSIE 토큰에 버전이 표기 되었는데,
    Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)

    Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/6.0)

  • IE 11부터는 MSIE 토큰이 없어지고, like getko 가 추가되면서 rv 토큰에 브라우저의 버전이 표시되는 것으로 변경되었다.
    Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko

  • MSDN 에서는 IE 11 이전 버전에서 잘못 식별되지 않도록 대응을 해주라고 하였고, 사용자 입장에서는 호환성 보기에서 페이지를 열면 잘 보인다고 한다. 처음에는 IE 11을 파폭으로 인식하는 거 보면서 비웃고 욕했는데, 검색하면서 나도 몰랐던 변경된 스펙을 알게 됐다.

  • 정부기관 사이트 중에서도 인기(!)가 없는 곳이라서 그런가? 그래도 IE 11 이 출시된 지 오랜 시간이 지났고, MS에서도 자동 업데이트로 강제로 IE 11을 설치하고 있는데, 전자공탁 홈페이지를 포함한 기존의 서비스에서도 한 번씩 점검을 해봐야 하지 않을까 싶다.
  • 과거에 개발된 서비스에서 최신 브라우저나 변경된 스펙에 대응하지 못한다면, 지금처럼 짜증나는 사용자 경험을 계속 하게될거다. 개인적으로 호환성 보기는 개발자(사용자) 모두를 더 핵 깔리게 하는 느낌이다.
  • 결론은 IE 11 부터 User Agent 스펙 변경되었고, 브라우저 체크가 필요한 서비스들은 필히 적용을 하기 바란다.