2013-09-05 2 views
2

iFrame 요소를 HTML 문서에 사용하면 하위 페이지가 브라우저의 모든 세션 및 쿠키 데이터와 함께로드됩니다. 예를 들어세션 또는 쿠키 데이터가없는 iFrame 사용 (시크릿)

:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <title>Stack Overflow in an iFrame</title> 
    </head> 
    <body> 
    <h1>Stack Overflow in an iFrame</h1> 
    <iframe src="http://stackoverflow.com" width="640" height="480" /> 
    </body> 
</html> 

가 SO 사실 자체가 iframe에로드 할 수 없습니다 잠시 무시합니다. 그렇다면 iFrame에 의해로드 된 SO 페이지에 로그인 한 것으로 표시됩니다.

쿠키 또는 세션 데이터없이 iFrame을 어떻게 사용할 수 있습니까? (Chrome의 시크릿 모드와 유사)

왜?

내 회사는 사용자 정의 웹 사이트를 구축하는 사람들을 위해 제품 (웹 앱)을 판매합니다. 사용자가 인증을 받고 웹 사이트를 방문하면 UI 버전의 인증 된 버전을 표시하여 콘텐츠를 수정할 수 있습니다. 승인되지 않은 사용자는 정적 웹 사이트 만 볼 수 있습니다. 여러 브라우저를 사용하거나 쿠키를 삭제하는 것은 사용자의 합리적 기대치가 아니므로 iFrame에서 사이트의 미리보기를 표시하여 방문자가 볼 수있는 것을 볼 수 있습니다. 우리는 또한 더 작은 해상도의 iFrames로 사이트의 "모바일"미리보기를 표시하여 방문자가 전화로 웹 사이트를 방문했을 때 방문자가 무엇을 보는지 알 수 있습니다. 이러한 iFrame은 Chrome이 시크릿 모드에서 실행하는 것과 같이 승인되지 않은 모드에서로드되도록 브라우저의 쿠키 또는 세션 데이터에 대한 액세스 권한없이로드해야합니다.

어디에서 시작해야할지 모르므로 아직 시도하지 않았습니다. 나는 HTML5 added some sandbox attribute values to the iFrame element을 찾았지만 그 중 누구도이 문제에 도움이되지 않는 것 같습니다. 아마도 JavaScript로 뭔가를 할 수 있었을 것입니다. 이미 프로젝트에서 jQuery를 사용하고 있습니다.

참고 : 우리는 사용 유효 HTML5

+3

클라이언트에서 쿠키 액세스를 ** 제어 할 수 없습니다 **. 우리 회사는 또한 iFrame에서 많은 돈을 벌기 때문에 iFrames에서 쿠키/세션을 설정하는 것은 이전에 작업해온 작업입니다. 아마도 다른 하위 도메인을 사용하는 것이 가장 쉽습니다. – jamez14

답변

4

당신은 완전히 인증되지 않은로서 사용자 취급 미리보기 매개 변수를 추가하는 것이 더 쉽습니다 않을 것이다 webstack를 제어하는 ​​경우에 목표? 예를 들어

은 :

<iframe src="http://stackoverflow.com?preview=1" width="640" height="480" /> 

미리보기 플래그가 존재하는 경우 권한 부여 검사를 생략 하였다.

+2

나는 이것이 좋은 생각처럼 들리며,이 같은 방법을 모바일 버전에 선택적으로 제공 할 수 있다고 쉽게 생각할 수 있습니다. – Gray

+0

솔직히 말해서 URL 매개 변수를 사용하는 auth'ed 모드에서 미리보기 모드를 사용하고 있지만 상단에 40px 막대가 표시되며 "귀하의 웹 사이트 미리보기"라고 표시되어 있습니다. 버튼을 눌러 편집 모드로 돌아갑니다. 미리보기 iFrames에이 최고 막대를 표시하고 싶지 않았습니다. 우리는 최종 사용자가 보는 것을 정확히 원했습니다. 즉, 쿠키 제어가 불가능한 것처럼 들리므로 최상단 표시 줄없이 미리보기 모드에 액세스 할 수있는 방법을 추가해야합니다. 감사! –