Internet Explorer는 일부 도메인의 쿠키를 무시합니다 (쿠키를 읽거나 설정할 수 없음)
예를 들어 example.com
사용자가 자신의 하위 도메인 (사용자 1 명-하위 도메인 1 개)을 설정하고 자신의 스크립트를 업로드 할 수 있는 사이트 http://somedomain.example.com/xyzzy.php
가 있습니다./www/somedomain/xyzzy.php
이제 일부 도메인에서 Internet Explorer 7은 쿠키를 허용하지 않거나 허용하지 않습니다. Fiddler로 확인 : 서버가 Set-Cookie 응답을 올바르게 보내지 만 JS 또는 개발자 도구의 경우 쿠키가 IE에 표시되지 않습니다. 요청시 IE7은 쿠키 헤더도 보내지 않습니다.
쿠키는 사용자 도메인 (예 :)에 대해 설정 somedomain.example.com
되고 경로는입니다 /
. 시도 된 다른 만료 옵션 (과거, 미래, 현재, "0")은 HttpOnly가 아니고 안전하지 않습니다.
FF, Opera, Safari 및 Chrome은 모두 문제없이 작동합니다.
IE가 쿠키를 무시하는 이유는 무엇입니까?
하위 도메인 중 하나가 밑줄을 사용합니까? IE는 URI RFC를 따르지 않는 하위 도메인의 쿠키를 수락하는 데 문제가 있습니다 .
RFC1035 (도메인 이름-구현 및 사양) 에 따르면 :
[도메인 이름]은 문자로 시작하고 문자 또는 숫자로 끝나야하며 내부 문자로 문자, 숫자 및 하이픈 만 포함해야합니다.
일부 도메인에는 밑줄 ( "_")이 있습니다 some_domain.example.com
.. 이는 RFC 위반이지만 다른 모든 브라우저는 정상적으로 작동합니다.
밑줄이있는 도메인에서 MSIE 7은 해당 호스트에 대한 모든 쿠키를 자동으로 삭제하고 새 쿠키를 거부합니다.
유일한 해결책은 RFC 호환 도메인을 사용하는 것입니다 (모든 "_"를 "-"로 바꾸고 트래픽이 호환 도메인으로 리디렉션되도록 RewriteRule을 설정했습니다).
이 문제는 도메인 이름의 밑줄뿐만 아니라 숫자로 시작하는 도메인 이름에도 적용됩니다. 따라서 1aaaaaaa.tld
실제로는 비표준 도메인 이름이므로 IE가 쿠키를 거부합니다.
을 사용하여 문제를 해결 www2.1aaaaaaa.tld
한 다음에서 1aaaaaaa.tld
및 www.1aaaaaaa.tld
호스트에 대한 재 작성 규칙을 추가 합니다 .htaccess
. 이것이 실제로 표준 준수 솔루션으로 적합한 지 모르겠지만 어쨌든 쿠키 문제를 해결 한 것 같습니다.
누군가에게 도움이되기를 바랍니다!
'IT TIP' 카테고리의 다른 글
CURRENT_TIMESTAMP (밀리 초) (0) | 2020.12.02 |
---|---|
PHP 대 템플릿 엔진 (0) | 2020.12.02 |
하위 문자열 발생을 계산하는 방법은 무엇입니까? (0) | 2020.12.02 |
PHP 날짜 (); (0) | 2020.12.02 |
도구 모음 아래 탐색 창 (0) | 2020.12.02 |