Internet Explorer 6에서 FRAMESET을 사용하면 세션 변수가 손실된다

기술 자료 번역 기술 자료 번역
기술 자료: 323752 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR323752
모두 확대 | 모두 축소

이 페이지에서

현상

FRAME이 파트너의 네트워크나 사용자 네트워크 내부에 있는 다른 웹 사이트를 가리키는 FRAMESET을 구현하지만 다른 상위 수준 도메인 이름을 사용하는 경우 Internet Explorer 6에서 이러한 FRAME에 설정하려는 모든 쿠키가 손실된 것으로 나타날 수 있습니다. 이것은 주로 ASP(Active Server Pages) 또는 ASP.NET 웹 응용 프로그램에서 세션 상태의 손실로 나타납니다. 있을 것으로 예상하는 Session 개체의 변수에 액세스하려고 하면 빈 문자열이 대신 반환됩니다.

웹 페이지가 DNS(도메인 이름 시스템) 이름 사용과 IP(인터넷 프로토콜) 주소 사용 사이를 전환하는 경우 FRAME 컨텍스트에서도 이 문제가 나타납니다.

원인

Internet Explorer 6에는 P3P(Platform for Privacy Preferences) 프로젝트에 대한 지원 기능이 도입되었습니다. P3P 표준은 FRAMESET 또는 상위 창이 FRAME이나 하위 창 내부의 다른 사이트를 참조하는 경우 하위 사이트를 다른 공급업체 콘텐츠로 간주합니다. 기본 개인 정보가 보통으로 설정된 Internet Explorer는 다른 공급업체에서 보낸 쿠키를 자동으로 거부합니다.

해결 방법

P3P 압축 정책 헤더를 하위 콘텐츠에 추가할 수 있으며 사용자 데이터에 악의적인 동작이 수행되지 않도록 선언할 수 있습니다. Internet Explorer에서는 만족스러운 정책을 찾으면 쿠키가 설정되는 것을 허용합니다.

만족스러운 정책 코드와 만족스럽지 않은 정책 코드의 전체 목록은 다음 MSDN 웹 사이트를 참조하십시오.

Internet Explorer 6의 개인 정보
http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp(영문)

이 기준을 만족하는 간단한 압축 정책은 다음과 같습니다.

P3P: CP="CAO PSA OUR"
				
이 코드 예제에서는 사이트에서 사용자의 연락처 정보(CAO)에 액세스할 수 있음을 보여 줍니다. 즉, 데이터가 온라인에 있는 사람에게 연결되고 실제 ID(PSA)에 연결되지 않았으며 데이터는 사용할 기관(OUR)을 위해 외부 기관에는 제공되지 않음을 의미합니다.

ASP 페이지에서 Response.AddHeader 메서드를 사용하는 경우 이 헤더를 설정할 수 있습니다. ASP.NET에서 Response.AppendHeader 메서드를 사용할 수 있습니다. IIS 관리 스냅인(inetmgr)을 사용하여 정적 파일에 추가할 수 있습니다.

이 헤더를 정적 파일에 추가하려면 다음과 같이 하십시오.
  1. 시작, 실행을 차례로 누른 다음 inetmgr을 입력합니다.
  2. 왼쪽 탐색 창에서 헤더를 추가할 웹 사이트의 적절한 파일이나 디렉터리를 누르고 파일을 마우스 오른쪽 단추로 누른 다음 속성을 누릅니다.
  3. HTTP 헤더 탭을 누릅니다.
  4. 사용자 지정 HTTP 헤더 그룹 상자에서 추가를 누릅니다.
  5. 헤더 이름으로 P3P를 입력한 다음 압축 정책 문자열로 CP=...를 입력합니다. 여기서 "..."는 압축 정책을 위한 코드입니다.
또는 Internet Explorer 사용자는 다른 공급업체의 콘텐츠를 받아들일 것인지 묻도록 개인 정보 설정을 수정할 수 있습니다. 다음 단계에서는 개인 정보 설정을 수정하는 방법을 보여 줍니다.
  1. Internet Explorer를 실행합니다.
  2. 도구를 누른 다음 인터넷 옵션을 누릅니다.
  3. 개인 정보 탭을 누른 다음 고급을 누릅니다.
  4. 자동 쿠키 처리 덮어쓰기 확인란을 선택합니다.
  5. ASP와 ASP.NET 세션 쿠키가 설정되도록 허용하려면 항상 세션에 쿠키 허용 확인란을 선택합니다.
  6. 모든 종류의 타사 쿠키에 대해 프롬프트를 나타내려면 제 3 사 쿠키 목록에서 확인을 누릅니다.

현재 상태

이것은 의도적으로 설계된 동작입니다.

추가 정보

문제를 재현하는 방법

  1. TestFrameset.asp라는 파일 이름을 만듭니다.
  2. IP 주소를 사용하여 파일의 FRAME 중 하나로 네트워크의 다른 컴퓨터를 가리킵니다.
    <HTML>
    
    <FRAMESET ROWS="100%,*">
    <FRAME src="http://111.111.111.111/testFrame.asp"></FRAME>
    <FRAME src="about:blank"></FRAME>
    </FRAMESET>
    
    
    </HTML>
    					
  3. 원격 컴퓨터에서 다음 예제와 같이 TestFrame.asp를 만듭니다.
    <HTML>
    
    <BODY>
    
    <%
    
    Response.write "Session var is " & Session("TestVar")
    Session("TestVar") = "Hello, world!"
    
    %>
    
    <BODY>
    
    <FORM METHOD="POST">
    <INPUT type="submit" value="Print TestVar">
    </FORM>
    
    </BODY>
    
    </HTML>
    					
  4. TestFrameset.asp로 이동한 다음 Form Submission을 누릅니다.
해당 Session("TestVar") 항목을 제출한 후에는 "Hello, world!"가 포함되어 있어도 아무 것도 인쇄되지 않습니다.

참조

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
283185 Internet Explorer 6에서 쿠키를 관리하는 방법
290333 P3P(Platform for Privacy Preferences) 프로젝트 설명
293222 Internet Explorer 6의 기본 개인 정보 설정




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 323752 - 마지막 검토: 2006년 5월 22일 월요일 - 수정: 3.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Internet Explorer (Programming)
키워드:?
kbprb KB323752
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com