2003/11/04

IE6의 보안설정에 의한 쿠기 제한에 따른 웹서버 헤더추가

인터넷익스플로러 에서는 다음과 같은 개인 보안정책에 의해서 쿠기제한을 설정할수 있습니다.



다음 개념에 대해서 간략하게 이해를 해야 합니다.

□지속성 쿠키와 세션 쿠키 비교
Internet Explorer 6의 쿠키 처리 방법을 이해하려면 지속성 쿠키와 세션 쿠키의 차이점을 아는 것이 좋습니다. 지속성 쿠키는 정의된 만료 시간에 도달할 경우 삭제됩니다. 반면, 지정된 만료 시간이 없는 세션 쿠키는 Internet Explorer를 닫을 때 삭제됩니다. 지속성 쿠키는 사용자의 컴퓨터의 쿠키폴더에 만료시간까지 실제 파일로 저장되는 형태를 말합니다. 이부분이 다중사용자 컴퓨터의 경우(게임방 컴퓨터..) 보안에 취약합니다.

□제1 컨텍스트와 제3 컨텍스트
Internet Explorer 6은 제1 컨텐트를 호스트 도메인과 연관된 것으로 정의합니다. 제3 컨텐트는 호스트 도메인 이외의 도메인에서 만들어집니다. 예를 들어, 주소 표시줄에 www.wideworldimporters.com을 입력하여 이동했더니 이 사이트에 www.wingtiptoys.com의 배너 광고가 떠있다고 가정해 보십시오. 이 두 사이트에 쿠키를 설정할 경우, www.wideworldimporters.com의 쿠키가 제1 컨텍스트 쿠키이고 www.wingtiptoys.com의 쿠키가 제3 컨텍스트 쿠키가 됩니다.

이따금 상업용 웹 페이지에는 제1 컨텐트와 제3 컨텐트가 혼재해 있습니다. Internet Explorer 6 개인 정보 기능은 제1 컨텐트와 제3 컨텐트를 구별합니다. 이 때 근간이 되는 가정은 사용자의 제1 및 제3과의 관계가 서로 다르다는 것입니다. 실제로 사용자는 제3을 알지 못할 수도 있고 제3과 새로운 관계를 설정할 것인지 선택할 수도 있습니다. 이러한 이유 때문에 제3 컨텐트에 대한 기본 개인 정보 설정은 제1에 대한 설정보다 엄격합니다.

참고 www.wideworldimporters.com 및 toys.wideworldimporters.com은 둘 다 wideworldimporters.com이라는 동일한 최소 도메인을 갖고 있습니다. 동일한 최소 도메인을 호스트 도메인으로 공유하는 컨텐트를 제1 컨텐트로 간주하며, 마찬가지로 이러한 도메인에서 설정된 쿠키는 제1 쿠키로 간주합니다. 최소 도메인은 동일한 최상위 도메인(TLD)을 가져야 합니다. .com, .net, .org 등을 일반적인 TLD의 예로 들 수 있습니다.

위를 보통 도메인 쿠기라고 합니다. 도메인 쿠기를 생성했을경우 하위 도메인에 일괄적으로 동일한 쿠키가 적용됩니다.


쿠기 사용은 P3P압축정책에 의한 쿠키이어야 합니다. IE6는 3단계 쿠키 동작에 의해 처리를 합니다.



쿠기압축정책이 없는 지속성 쿠기의 경우 해당쿠기 허용을 제1컨텍스트 및 제3컨텍스트 모두 거부를 합니다. 그래서 대부분의 사이트에서 지속성 및 세션쿠기를 사용해서 카운터 및 게시판등에서 사용자 입력값을 저장해 두는데, 압축정책이 없으므로 클라이언트 컴퓨터에서 쿠기가 적용되지 않습니다.

특히나, 문제는 쿠키를 통해서 인증을 처리하는 웹사이트의 경우 문제가 큽니다.
대부분을 그렇게 하고 있다는데 있습니다.

■ 해결방법

다음과 같이, 웹서버의 헤더에 다음 P3P 쿠키규약을 등록해 줍니다. 물론, 대부분은 되지만, 보안이 강화된 브라우져에서는 쿠키가 안먹는 경우를 대비해서 등록을 해줍니다.

개인 정보 태그 및 해당 압축 토큰으로 용도, 수신인, 범부 및 액세스 토큰을 결합하여 예제에 대한 압축 정책을 만들 수 있습니다. 압축 정책은 다음 구문을 사용하는 사용자 지정 HTTP 응답 헤더를 통해 전송합니다.

P3P: CP="CAO PSA CONi OTR OUR DEM ONL"
*해당 코드에 대한 자세한 설명은 P3P 규약문서를 참고하시기 바랍니다.
(http://www.w3c.org/tr/p3p)



이 헤더는 ASP(Active Server Pages)를 사용하거나 Microsoft® Windows® 2000 서버 및 사용이 많은 다른 웹 서버의 컴퓨터 관리 콘솔을 통해 HTTP 응답에 추가할 수 있습니다. 쿠키 압축 정책이 HTTP 응답에 있는 쿠키 데이터와 함께 서버에서 전송되고 쿠키에 대한 결정과 설정은 클라이언트(Internet Explorer 6)에서 수행된다는 점에 주의합니다.

ASP코드에서 헤더를 추가하는 방법은 다음과 같습니다.
<% Response.AddHeader "Set-Cookie" , "test=id=server&pwd=1234" %>


■ 테스트
IE6이 설치된 웹브라우져의 보안정책을 최대로 설정한후 임의 쿠키가 설정되는지 점검을 해보아야 합니다.


03-ie6_privacy.bmp
03-ie6_rist.bmp
03-iis_header_set.JPG

댓글 없음:

댓글 쓰기

가장 많이 본 글