* 원문: 윤석찬의 테크 공작실 http://www.zdnet.co.kr/news/column/scyoon/
이전에 게재된 체험! 윈도우 XP 서비스팩2을 통해 독자들은 SP2의 새로운 기능에 대한 기본적인 내용들을 훑어볼 수 있었을 것이다. 이 글에서는 개인 사용자보다는 SP2 출시로 웹 개발자들이 꼭 점검하고 수정해야 할 점들을 살펴보도록 하자.
SP2 출시로 인해 윈도우 사용자들은 보안과 설정에 대한 선택권이 보다 넒어졌다. 그러나 기본적인 보안 기능을 강화됨에 따라 웹사이트 개발자들에게는 그 동안 별 문제 없이 사용되던 웹사이트의 기능들이 제한될 수 있다는 점을 유념해야 한다.
윈도우 XP 서비스팩2는 8월 11일 RTM 버전이 출시 되었고, 9월 2일 윈도우 업데이트를 통해 모든 윈도우 XP 사용자에게 배포 되게 된다. 또한, 10월 1일부터는 모든 윈도우 XP를 탑재하는 PC에 기본 탑재돼 출시 된다. 우리 나라가 윈도우 XP 사용자가 해외에 비해 상대적으로 많고, 주요 제한 기능들이 팝업과 액티브X 컨트롤 등 우리 나라에서 큰 거부감 없이 사용되던 기술이어서 갑작스런 변경에 혼란이 야기될 가능성이 있다.
이 글에서는 XP 서비스팩2로 인해 웹사이트에서 발생할 수 있는 주요 기능의 제한점들을 소개하고 이를 보완할 수 있는 해결 방법들을 알려 주고자 한다. 이 방법들은 XP 서비스팩2가 주는 장점들을 제한하는 것이 아니라, 웹사이트 이용자들에게 줄 혼란을 미연에 방지하고, 편의성을 높여 주는 측면에서 제공하는 것이다.
팝업창 차단과 해법
서비스팩2에 포함된 가장 중요한 기능 중 하나가 인터넷 익스플로러에 대한 대대적인 업데이트이다. 이 중 다른 브라우저에 탑재되어 많은 사용자들의 호응을 받았던 기능 중 하나가 팝업창 차단이다. 이 기능이 브라우저에 기본값으로 설정되며, 웹사이트에 따라 브라우저 주소 표시줄 아래에 표시되는 알림 표시줄을 통해 사용자가 차단 여부를 선택할 수 있다.
팝업창을 차단한다고 해서 모두 다 차단하는 것은 아니다. onload와 window.open을 통해 자동으로 오픈되는 팝업창만 차단된다. 즉, 사용자의 액션으로 열리는 팝업창이나 인트라넷 영역에서는 팝업이 허용된다.
이렇게 되면, 싸이월드의 경우 주소를 치면 미니 홈피가 자동으로 뜨던 것을 할 수가 없게 된다. 또한 팝업 광고나 알림을 위해 웹사이트에서 띄우는 공지들도 모두 차단되는 것이다.
가장 먼저 할 수 있는 것이 팝업 차단 기능을 해제하거나, 자신의 사이트에서는 팝업을 허용하도록 하는 가이드를 만들어 공지하는 일이다. 그 다음으로 자동으로 뜨는 팝업창이 어떤 액션을 수행하게 될 때 팝업창이 차단되었는지 여부를 확인하여 이에 대한 적절한 경고를 사용자에게 해주는 것이 필요하다.
팝업창이 차단되면 window.open()함수는 리턴 값으로 null을 반환하므로 이를 이용해 차단 여부를 알 수 있다. 아래 내용이 팝업창 차단을 확인해 그 여부를 알려주도록 수정된 자바스크립트 코드다.
수정 전
<script language = “javascript” >
function onLoad()
{var objPopup = window.open(“popup.htm”, “”);
location.href = “other.html”;
}
</script>
<body onload= “onLoad()” >수정 후
<script language = “javascript”>
function onLoad()
{
var objPopup = window.open(“popup.htm”, “”);
if (objPopup == null) {
alert(“차단된 팝업창을 허용해 주십시오.”);
}
else {
location.href = “other.html”;
}
}
</script>
<body onload= “onLoad()” >
예를 들어 팝업창을 자동으로 띄우고 원래 페이지가 다른 페이지로 이동한다거나 창을 닫거나 하는 경우가 있으면 팝업창 차단 여부를 확인하도록 스크립트를 바꿔야 한다.
액티브X 컨트롤 자동 설치 차단과 해법
웹사이트를 돌아다니다 보면 직사각형의 보안 경고창을 흔히 볼 수 있다. 이것은 웹페이지에 추가적인 기능을 부여하는 액티브X 컨트롤을 다운로드 하기 위한 확인창이라 할 수 있다. 대부분의 사용자들이 직관적으로 예를 누르기 때문에 이를 이용하면 악의적인 코드를 담고 있는 프로그램을 PC에 설치할 수 있어 많은 문제가 돼 왔다.
이번 XP 서비스팩2에서는 아예 이러한 창 자체가 뜨지 않는다. 즉 액티브X 기능을 포함하는 페이지의 경우, 현재 보고 있는 페이지에 액티브X가 포함돼 있으며 설치하려면 사용자가 직접 선택하라는 메시지가 알림 표시줄에 뜬다.
현재 우리나라에서는 온라임 게임 뿐 아니라 인터넷 뱅킹, 전자 지불, 사이버 트레이딩에 기본적으로 인증용 액티브X가 사용되고 있다는 측면에서 학습되지 않은 사용자들의 고객 문의 폭주가 예상된다고 하겠다. 웹페이지는 정상적으로 표시되지만 액티브X 컨트롤이 안 깔려 있는 상황에서는 알림 표시만 하고, 기능이 정상적으로 동작하지 않게 되기 때문이다.
예를 들어 국세청의 홈택스 서비스의 경우 2~3개 회사의 여러 액티브X가 웹페이지에 포함돼 있어 하나를 설치하더라도 사용자는 메시지를 보내는 알림 표시줄을 통해 아직 설치하지 않은 액티브X를 설치해야 한다. 이럴 경우 아래와 같이 소스코드를 변경해 설치 여부를 확인, 안내 페이지로 옮겨줌으로써 사이트 방문자들이 수동으로 다운로드해 설치하도록 하는 것이 좋다.
수정 전
<body onload =”checkControl()” >
<object id = “objCtl” classid =”….” codebase=”xxx.cab”>
</object>
</body>
수정 후
<script language = “javascript” >
function checkControl()
{
If (objCtl == null) {
top.location.href = “error.asp”; //필요한 기능을 설치하는 소개 페이지로 이동합니다
}
objCtl.do();
}
</script>
<body onload =”checkControl()” >
<object id = “objCtl” classid =”….” codebase=”xxx.cab”>
</object>
</body>
또한 SP2는 이제 신뢰되지 않은 게시자가 배포하는 액티브X 프로그램을 원천 차단함으로써 아예 설치할 수 없도록 변경해버렸다. 액티브X 개발사들은 인증 과정과 비용의 번거러움 때문에 테스트 인증서로 서명한 액티브X를 배포하기도 하였는데, SP2가 설치된 PC에서는 베리사인(VeriSign)과 써트(Thawte) 등 글로벌 인증 기관에서 발행한 인증서로 서명된 코드만 설치된다.
따라서 이전에 코드사인 인증서를 가지고 있지 않은 회사는 인증서를 발급 받아 사용해야 한다. 현재 국내에서는 베리사인과 트와트 양사의 코드사인 인증서를 함께 대행하는 웹사이트(www.thawte.co.kr)가 있기 때문에 안내를 받을 수 있다.
창 제한과 해법
팝업창 차단과 함께 포함된 기능이 팝업창 사이즈 제한 기능이다. 이것은 팝업으로 뜬 창이 윈도우 전체에 표시되거나, 사용자가 제어할 수 없는 상황을 막아 주기 위한 것이다. 음란 사이트나 링크 사이트 같은 곳에서 심심치 않게 경험하는 것이다.
이 제한에는 스크립트를 이용한 창 크기 조절을 사용할 수가 없다. 팝업에서의 window.resize 같은 기능이 제한되는 것이다. 그리고 이전에는 팝업 윈도우의 위치를 정할 수 있었지만 이제 이것도 조절된다. fullwindows=yes 같은 스크립트로 화면 전체에 표시하던 기능도 창 최대화 기능으로만 사용된다는 점도 염두해야 한다.
즉 지금까지 사용하던 온라인 전면 광고나 웹사이트 등은 영향을 받을 수 있다. 따라서 이러한 기능을 사용하고 있는 웹사이트들은 수정이 필요하다.
또한 팝업을 만들 때 주소창, 메뉴바, 상태 표시줄 등을 제어할 있었지만 모든 팝업에 상태 표시줄은 꼭 들어가게 된다. 따라서 기존의 팝업 윈도우의 크기에서 상태 표시줄이 표시되는 20~30픽셀 정도의 크기가 더 늘어남에 따라 윈도우 사이즈를 약간 늘여야 모든 컨텐트와 UI를 제대로 표시할 수 있다.
정확한 MIME 핸들링
웹서버에서 브라우저로 데이터를 보낼 때에는 HTTP 헤더에 데이터 컨텐트-타입을 적어주게 돼 있다. 대부분의 아파치 웹서버는 text/plain이 기본으로 설정돼 있으며 MIME 타입에 설정돼 있지 않는 확장자로 데이터를 보내면 웹브라우저는 어떤 형식인지 인식할 수 없게 된다.
여기에 인터넷 익스플로러에는 MIME 스니핑이라는 기능이 내장돼 있어 헤더가 text/plain이더라도 html 구문이 포함돼 있으면 html 문서로 읽어 주는 역할을 해 왔다. 이것은 그림 파일이나 기타 다른 애플리케이션 파일 포맷도 마찬가지다.
SP2에서는 이런 자동적인 MIME 스니핑은 더 이상 작동하지 않는다. MIME 타입이 보내지면 이에 따라서만 데이터를 표시하게 된다. 따라서 HTTP 헤더와 데이터 포맷을 정확히 쓰는 버릇을 들여야 한다.
만약 그렇지 못한 파일이 IE에 전달되면 저장 기능만 작동되며 바로 실행은 이제 불가능하다. 이미 모질라나 오페라 같은 브라우저에서는 이렇게 작동됨으로써 정체 불명의 파일이 다운로드돼 실행되는 것을 막고 있다. 단 MIME 타입을 알 수 없는 경우에는 스니핑이 그대로 동작한다.
로컬 머신 잠금 기능
사용자의 로컬 머신 보안 영역이 인터넷보다 한층 더 높아져 윈도우 XP를 사용해 웹페이지 및 액티브X의 내부 테스트를 하는 데 어려움이 따르게 됐다. 자바스크립트 실행이나 액티브X 실행 자체가 원천적으로 불가능하게 됐기 때문에 윈도우 XP 개발자들은 테스트 진행에 애로를 겪게 될 것이다.
로컬 HTML 파일에 <!– saved from url=(0022)http://www.yoururl.com –> 이나 <!– saved from url=(0013)about:internet –>와 같은 주석을 붙임으로써 실행이 가능하긴 하다. 또한 액티브X 컨트롤은 웹으로 올린 후 다운받아 테스트해야 한다.
이번에 출시되는 윈도우 XP 서비스팩 2에는 이 밖에도 몇 가지 제한 사항이 더 포함돼 있다. 모든 설정은 사용자의 레지스트리에서 변경 가능하긴 하지만 기본적으로 설정돼 있는 것 때문에 많은 혼란이 있을 수 있다.
지금까지 살펴 본 바로는 기존의 많은 코드를 다시 살펴봐야 하는 어려움은 따르겠지만 그 동안 등한시 해왔던 보안에 대한 이슈를 해결한다는 측면에서 꼭 필요할 것이다. 특히 서비스팩2에서는 IE와 기존 설치된 애플리케이션, 확장 기능과의 충돌을 확인할 수 있는 기능도 내장돼 있는 등 전반적으로 사용자 웹브라우징의 안정성 및 보안성을 높였다고 볼 수 있다.
그럼에도 불구하고 웹사이트를 방문하는 사용자의 편의성을 위해 개발자나 사이트 운영자들은 서비스팩2의 정식 출시 이전에 미리 설치해 자신의 웹사이트에 대한 테스트를 꼭 해보기를 권장한다. 또한 고객이 오인할 수 있는 팝업 제어나 액티브X 컨트롤 설치 등에 대한 자세한 안내문을 적어주는 것도 필요하다. @
※ Disclaimer- 본 글은 개인적인 의견일 뿐 제가 재직했거나 하고 있는 기업의 공식 입장을 대변하거나 그 의견을 반영하는 것이 아닙니다. 사실 확인 및 개인 투자의 판단에 대해서는 독자 개인의 책임에 있으며, 상업적 활용 및 뉴스 매체의 인용 역시 금지함을 양해해 주시기 바랍니다. 본 채널은 광고를 비롯 어떠한 수익도 창출하지 않습니다. (The opinions expressed here are my own and do not necessarily represent those of current or past employers. Please note that you are solely responsible for your judgment on checking facts for your investments and prohibit your citations as commercial content or news sources. This channel does not monetize via any advertising.)