2012-10-29 2 views
0

웹 페이지에 captcha가있는 양식이 있습니다.이 captcha는 값을 저장하는 SESSION 변수를 사용하고 있습니다. 이 양식은 IE7-8 및 9, FF, Chrome, Safari 등에서도 작동하지만 IE10과 함께 문제가 있습니다. 이 양식을 IE10의 웹 페이지에서 직접 호출하면 보안 문자 코드가 제대로 작동하지만이 양식을 다른 웹 사이트의 IFRAME에서 호출하면 SESSION 변수가 저장되지 않습니다. 이 경우 SESSION 변수를 사용할 방법이 없습니다.IE10, Iframe 및 PHP 세션 var

아이디어가 있으십니까?

+0

코드가 IE9 이하에서 작동하는 경우 IE10의 DoNotTrack 설정이 기본적으로 켜져 있기 때문에 쿠키가 어떤 방식 으로든 공유되는 것을 차단할 수 있습니다. http://econsultancy.com/ca/​​blog/10983-thanks-microsoft-do-not-track-are-arrival-on-arrival-arrival-arrival-arrival-arrival-arrival-arrival-arrival-arrival-on-arrival) 사이트에서 현재이를 무시하고 있기 때문에 기본적으로이 설정이 켜져 있다는 우려는 없습니다. – scunliffe

+0

"do-not-track"을 제거하려고했지만 동일한 문제가 있습니다. 실제로 양식을 직접 (다른 도메인의 Iframe없이) 사용하면 양식이 IE10에서 잘 작동합니다. 나는이 해킹을 시도 할 것입니다 : 특별한 Http 헤더를 보내주십시오 : P3P : CP = "IDC DSP COR ADM 디바이스 PSA PSD IVIi는 우리의 CNT를 가지고 있습니다" A 알려드립니다. – Mystral

답변

0

iframe은 해당 콘텐츠의 원본 사이트의 영향을받습니다. 다른 사이트에서 captcha/form을로드하고 있기 때문에 해당 프레임에 설정된 쿠키는 다른 사이트에 잠겨 있습니다.

귀하의 사이트는 example.com입니다. iframe은 foobar.net에서옵니다. iframe에 설정된 모든 쿠키는 foobar.net으로 제한되며 example.com에서는 사용할 수 없습니다.

+0

이 경우, 웹 사이트 "foobar.net"은 "example.com"을 가리키는 IFRAME을 표시합니다. ** 및 ** Captcha가 호스팅되는 양식입니다 ... 동일한 도메인 및 동일한 서버 ...이 양식은 FF로 IFRAME에서 기능하고 있습니다 , IE7-8-9, 크롬, 오페라, 사파리, Konkeror 등 ... IE10 아니야! – Mystral

0

첫째, 세션과 쿠키가 혼란 스럽습니다. 세션은 클라이언트에있는 쿠키 인 서버에 저장됩니다. 세션이있는 경우 세션을 식별하는 쿠키가 있어야합니다. 그래서 정말로 당신은 쿠키에 대해 이야기하고 있습니다.

다른 도메인의 쿠키를 가져올 수 없습니다. 동일한 출처 정책을 위반합니다.

두 도메인을 모두 제어하는 ​​경우 리소스 공유 (CORS Cross-Origin-Resource-Sharing)를 설정할 수는 있지만 매우 쉽지는 않습니다.

+0

나는 세션과 쿠키를 혼동하지 않는다. 나는 정말로 그것이 무엇인지 알고있다. 나는 웹 코더이고 복잡한 웹 사이트를 만든다. 세션 쿠키는 "PHPSESSID"(PHP 코딩 용)이며 사용자 쿠키는 아닙니다. 이 SESSION 쿠키는 방문 중 동일한 방문자를 식별하기 위해 브라우저에서 전송됩니다. 이 ID를 가진 정보를 저장함으로써 PHP는 이전에 동일한 웹 사이트 (동일한 도메인)와 동일한 브라우저의 다른 페이지에 저장된 변수를 검색 할 수 있습니다. (http://www.php.net 참조) 네비게이터를 닫더라도 사용자 쿠키가 저장됩니다. 탭이 아닌 네비게이터를 닫으면 SESSION 쿠키가 손실됩니다. – Mystral

0

이것은 IE10의 알려진 버그입니다. bug report을 참조하십시오.

+1

참조 내용에 대한 설명을 추가하여 답변을 개선하십시오. – DontVoteMeDown