2010-03-17 4 views
2

상황 :PHP에서 서로 다른 하위 도메인에서 HTTP 및 HTTPS에 사이트에 대한 쿠키를 설정

  1. 내가 이 secure.example.com을 내가 갖고 싶어 한 도메인에 대한 HTTPS 저장소 (xcart)를 실행하려고 해요 이 HTTP www.example.com
  2. 제가 아파치 (MAMP)에 PHP를 실행 해요에서 설정하는 쿠키에 대한 액세스, Firecookie
  3. 와 파이어 폭스에서 테스트는 기존의 코드는 .secure.example.com에 쿠키를 설정합니다. 이 xcart 관련 있는지 확실하지 않지만 setcookie 실제로 secure.example.com 사용하여 호출됩니다. 왜 "."이 추가 될지 모르겠습니다.

문제 : 나는 HTTP 또는 HTTPS에서 가게를 실행 해요 여부를

  1. 내가 도메인 .example.com하거나 example.com을 사용하는 HTTPS에 setcookie를 사용하려고

    , 아니 쿠키가 생성되지 않습니다. 내가 사용하고있어 테스트 코드는 다음과 같습니다

    setcookie('three', 'two', 0, "/", ".example.com"); 
    

나는 그것이 표시 않습니다 secure.example.com 또는 .secure.example.com에 쿠키를 설정합니다.

쿠키가 표시되지 않는 이유가 있습니까?

+0

검보 - nilacqua는 localhost를 사용하면서 setcookie를 호출하는 동안 .example을 사용하는 것처럼 보입니다. – Ramesh

답변

3

문제는 내가 localhost를 사용하여 하나의 rd 도메인, 'mydomain', 어떤 이유로 원래 메시지에서 편집 된 사실. 최소한 firefox는 mydomain.local과 같이 명시 적으로 설정된 쿠키에 대해 적어도 두 단어 이상을 요구합니다. hosts 파일을 www.mydomain.local 및 secure.mydomain.local과 같은 도메인으로 변경했으며 쿠키를 .mydomain.local로 설정할 수있었습니다.

또한 PHP가 자동으로 "." 명시 적으로 설정된 쿠키 앞에 표시됩니다.

0

setcookie('three', 'two', 0, "/", ".mydomain.com");을 사용해 보셨습니까?

+0

지금 로컬 호스트에서 실행 중이므로 끝에 .com이없고 www.mydomain과 secure.mydomain 만 있습니다. – nilacqua

+0

호스트 파일 항목 (C : \ WINDOWS \ system32 \ drivers \ etc \ hosts)을 추가하십시오.)를 모든 도메인에 할당하고 로컬 컴퓨터의 IP에 매핑합니다. 도메인이 브라우저의 프록시를 통과하지 않는지 확인하십시오. – Ramesh

1

예 - 정책은 브라우저에 의해 결정되며 일부 브라우저에서는 구성 할 수 있습니다.

IIRC 이전의 의미론. 표준 쿠키 2,109 (쿡 RFC에 설명하는 상태 :

A는 FQDN 문자열이며, N은, B '가 형성 .B를 갖는 비어 이름 문자열 형태의 NB를 가지고 그리고 B는 '나는 의미로 해석 할

는 의도 이기에, setcookie 지침에 domian 될 것을 ( 도메인 일치 .y.com하지만 y.com. Xycom의, 그래서). FQDN을 문자열입니다 와일드 카드 일치 항목으로 사용하려면 '.'즉 .example.com을 사용해야합니다. 그러나 사양은 다음과 같이 계속됩니다.

도메인 = 도메인 선택 사항. 도메인 특성은 쿠키가 유효한 도메인을 지정합니다. 명시 적으로 지정된 도메인은 항상 으로 점을 시작해야합니다.

나는 그 반대를 암시합니다.

나는 read it 자신과 실험을 제안합니다.

확실한 실용적인 해결 방법은 적절한 쿠키가없는 경우 쿠키 설정 웹 서버로 다시 리디렉션하여 쿠키를 확인한 다음 쿼리 문자열에 쿠키 세부 정보가있는 원래 서버로 다른 리디렉션을 되돌려 보내는 것입니다. 현재 서버와 연관된 쿠키의 사본을 h 제하십시오.

다른 섹션이있는 FQDN을 사용하면 약간의 마일리지가 발생할 수 있습니다 (예 :

secure.www.example.com

www.example.com

(위한 쿠키 삭제 [한다.] www.example.com)

HTH

C.

관련 문제