2010-07-01 2 views
1

웹 사이트의 일부 사용자가이 문제를 알고있었습니다. 많은 사용자가 브라우저에 http://xxxx.com을 입력 한 다음 로그인합니다. 그런 다음 그들은 그들이 다시 로그인하도록 http://www.xxxx.com에게 가져 오는 링크를 클릭 할 수 있습니다! 이 문제는 이전에 누구와도 만난 적이 있습니까? 나는 인터넷 검색을 시도했지만, 메신저가 틀린 키워드를 사용하는 경우 또는 무엇이 내가 이것과 관련된 아무것도 찾을 수 없기 때문에 확실하지 않습니다.세션 변수가 http://www.xxxx.com에서 http://xxxx.com으로 이월되지 않습니다.

감사합니다, 이안 맥 컬러

답변

5

브라우저와 관련하여 www.xxxx.com과 xxxx.com은 다른 도메인입니다. 동일 출처 정책은 여러 도메인에서 쿠키에 액세스하는 것을 방지합니다.

그러나 브라우저는 하위 도메인을 인식하고 있으며 하위 도메인은 상위 도메인의 쿠키에 액세스 할 수 있습니다. 따라서 쿠키를 xxxx.com과 www.xxxx.com 모두에 액세스 할 수있게하려면 .xxxx.com에 쿠키를 설정하면 쿠키가 설정됩니다.

+0

+1. 그러나 더 나은, 그러나 : 하나의 도메인을 선택하고 그것으로 붙어 있습니다. example.com의 모든 트래픽을 www.example.com으로 리디렉션하거나 www.example.com의 모든 트래픽을 example.com으로 리디렉션하십시오. 둘 다 사용하지 마십시오. –

0

, 루트 서버, 특정 하위 도메인 등을 처리하기 위해 쿠키를 만들 때 모든 하위 도메인의 경우, 지정할 수있는 쿠키의 도메인을 점검 전부 쿠키는 .example.com을위한 것입니다.

0

쿠키를 설정할 때 쿠키가 설정된 도메인을 선택적으로 지정할 수 있습니다. 그렇게하지 않으면 쿠키는 해당 호스트 이름에만 국한되므로 쿠키가 www.example.com에 설정된 경우 해당 호스트 이름 또는 그 아래의 브라우저에서만 쿠키가 반환됩니다.

쿠키를 설정할 때 도메인을 "example.com"으로 설정하면 "www.example.com"에서도 작동해야합니다.

문제는 특정 쿠키가 덜 구체적인 쿠키보다 우선 적용되므로 이전에 "www.example.com"에서 쿠키를 설정 한 경우 "example.com"에 설정된 새 쿠키를 계속 무시합니다. "대신에"www.example.com "을 삭제해야합니다. 클라이언트가 서버에 쿠키를 반환하면 쿠키가 설정된 호스트 이름을 말하지 않기 때문에 까다로워집니다.

0

사람들은 쿠키를 사용하여 인증을 수행한다고 가정하고 있지만 루트 질문 인 것처럼 보이지 않습니다. Trevor는 간단히 언급했지만 여전히 쿠키 개념을 유지했습니다. http와 관련하여 www.xxxx.com과 xxxx.com은 동일한 최상위 도메인에있는 서로 다른 하위 도메인입니다. 따라서 동일한 ip, 동일한 웹 사이트, 동일한 모든 것, 브라우저 요청 및 서버의 응답은 2 개의 별도 도메인/사이트로 간주됩니다. 세션이 분리 된 세션 상태 (예 : SQL 세션 저장소 등)가 아니면 세션은 하위 도메인간에 공유되지 않습니다.

그러나 인증에 쿠키를 사용하는 경우 쿠키의 데이터가 유효하고 세션을 재구성하기에 충분할 경우 쿠키 검사를 추가하고 새로운 세션을 다시 작성할 수 있습니다. 그렇지 않으면 세션 상태를 프로세스에서 데이터 저장소로 분리해야합니다.

관련 문제