Simplesmente não acredito que isso seja tão difícil de determinar.
Mesmo depois de ler as RFCs, não está claro para mim se um servidor no subdomínio.exemplo.com pode definir um cookie que pode ser lido por exemplo.com.
subdomínio.exemplo.com pode definir um cookie cujo atributo Domínio seja .exemplo.com. A RFC 2965 parece declarar explicitamente que esse cookie não será enviado para example.com, mas diz igualmente que, se você definir Domínio = example.com, um ponto será acrescentado, como se você dissesse .example.com. Tomados em conjunto, isso parece dizer que, se example.com retorna um cookie com Domain = example.com, ele não recebe esse cookie de volta! Isso não pode estar certo.
Alguém pode esclarecer quais são realmente as regras?
Respostas:
Citando o mesmo RFC2109 que você leu:
Então,
subdomain.example.com
pode definir um cookie para.example.com
. Por enquanto, tudo bem.Então, temos uma correspondência de domínio?
Mas agora
example.com
não corresponderia.example.com
ao domínio de acordo com a definição. Maswww.example.com
(ou qualquer outro "nome não vazio" no domínio) seria. Essa RFC é, em teoria, obsoleta pela RFC2965 , que ditava coisas sobre forçar um ponto principal para domínios emSet-Cookie2
operações.Mais importante, como observado por @Tony, é o mundo real. Para ter uma idéia do que os agentes do usuário estão fazendo, consulte
e
Para perspectiva em que sites reais estão fazendo, tentar jogar com
wget
usando--save-cookies
,--load-cookies
e--debug
para ver o que está acontecendo.Você provavelmente descobrirá que, na verdade, a maioria dos sites está usando alguma combinação das
Set-Cookie
especificações RFC mais antigas com valores "Host", implicitamente sem um ponto inicial (como o twitter.com ) ou definindo valores de Domínio (com um ponto inicial) e redirecionando para um servidor comowww.example.com
(como o google.com ).fonte
y.z
e implementos (2) o usuário-agente RFC 6265.Se o navegador implementa a RFC 6265 , que qualquer navegador moderno deveria estar fazendo neste momento, um cookie definido para
.example.com
terá o ponto inicial ignorado (seção 5.2.3), e o cookie será enviado para o domínio livre e para todos subdomínios.Não confie nesse comportamento se você tiver tráfego significativo de navegadores antigos; essa RFC data apenas para 2011.
fonte
Não deveria ser possível. No entanto, como você disse, como esse não é um padrão amplamente documentado, depende de qual software você está usando.
A maioria dos navegadores modernos segue um "modelo de segurança da web" definido. O modelo governa efetivamente o comportamento dos navegadores em relação à segurança, em coisas como cookies (especificamente como eles serão enviados de volta para qualquer site). O modelo também tem a regra de que "os navegadores não enviam cookies para nomes de domínio que não os definiram".
Dito isto, domain.com deve poder configurar cookies para js.domain.com. js.domain.com, no entanto, só pode definir cookies para si. Mas tudo isso depende do navegador que você está usando.
fonte