2012-05-03 3 views
2

example.com에 쿠키를 생성하는 사이트가 있습니다. Firefox, Chrome 18 및 Safari에서 모두 http://example.comhttp://www.example.com에 액세스 할 수 있습니다. 그러나 웹킷에서 파생 된 브라우저에서는 http://test.me.example.com의 쿠키에 액세스 할 수 없습니다. 그것은 Firefox에서 작동합니다.Chrome과 Safari에서 일부 하위 도메인에 쿠키가 표시되지 않는 이유는 무엇입니까?

javascript에서 쿠키를 설정할 때 example.com 및 .example.com의 domain = one으로 테스트했습니다.

쿠키의 경로는 /이며 만료가 설정되어 있습니다.

+1

[subdomain.example.com은 example.com에서 읽을 수있는 쿠키를 설정할 수 있습니까?] (http://serverfault.com/questions/153409/can-subdomain-example-com-set)를 참조하십시오. -a-cookie-that-read-by-example-com) – Andreas

+0

예, 그 스레드를 보면 파이어 폭스가 정확하고 크롬과 사파리가 제대로 작동하지 않는다고 생각합니다. 내가 말했듯이, 첫 번째 수준의 하위 도메인은 작동하지만 두 수준은 작동하지 않습니다. 쿠키가 .example.com으로 정의되어 있으면 www.example.com과 something.wwww.example.com이 둘 다 작동 할 것으로 예상됩니다. 내 생각에 누군가 크롬이 왜 이런 일이 발생했는지, 해결 방법이 있는지 알기를 바랬습니다. –

답변

0

어떻게 하위 도메인을 지정 하시겠습니까? Chrome은 하위 도메인의 쿠키 앞에 점 과 같은 접두사가 붙을 것으로 예상합니다. 도메인은 = .example.com을

당신은 도움이 게시물 찾을 수 있습니다

: https://serverfault.com/questions/153409/can-subdomain-example-com-set-a-cookie-that-can-be-read-by-example-com

같은 RFC2109에서 인용은 읽기 :

* A Set-Cookie from request-host x.foo.com for Domain=.foo.com would 
    be accepted. 

그래서 subdomain.example.com을 위해 쿠키를 설정할 수 있습니다 .example.com. 여태까지는 그런대로 잘됐다.

The following rules apply to choosing applicable cookie-values from 
    among all the cookies the user agent has. 

    Domain Selection 
     The origin server's fully-qualified host name must domain-match 
     the Domain attribute of the cookie 

그럼 도메인 일치가 있습니까? N은 비어 이름 문자열 인

  • A는 FQDN 문자열이며 양식 NB를 가지고는, B는 형태 .B 있습니다 '및 B'는 FQDN 문자열이다. (x.y.com 도메인 일치 .y.com은 y.com이 아닙니다.) 하지만 example.com은 정의에 따라 .example.com과 도메인을 일치시키지 않습니다. 그러나 www.example.com (또는 도메인의 다른 "비어 있지 않은 이름")>>. 이 RFC는 Set-Cookie2 작업에서 도메인에 대한 선행 점을 강제하는 것에 대한 내용을 기술 한 RFC2965에 의해 이론적으로 폐기되었습니다.

더 중요한 것은 @ 토니가 지적한 것처럼 현실 세계입니다. 실제 사용자 에이전트가 무엇을하고 있는지 엿볼 들어,

파이어 폭스 3의 nsCookieService.cpp 및

실제 사이트가 무엇을하고 있는지에, wget을 사용하여 재생하려고 원근법 크롬의 cookie_monster.cc > --save 참조 -cookies, --load-cookies 및 --debug를 사용하여 현재 진행중인 작업을 확인할 수 있습니다.

실제로 대부분의 사이트는 "Host"값을 가진 이전 RFC 사양의 Set-> Cookie 조합을 사용하고 있으며 암시 적으로 선행 점이 없거나 (twitter.com처럼) 도메인을 설정하고 있습니다 값 (선행 점이 있음) 및 www.example.com과 같은 서버로 리디렉션 (google.com처럼)

+0

원래의 질문에서 지적했듯이, 선도 점이 시도되었습니다. –

관련 문제