26 votos

Subdomain.example.com puede establecer una cookie que puede ser leída por ejemplo.com.

Simplemente no puedo creer que esto sea tan difícil de determinar.

Aun después de haber leído el Rfc, no es claro para mí si un servidor en subdomain.example.com puede establecer una cookie, que puede ser leído por example.com.

subdomain.example.com puede establecer una cookie cuyo Dominio es el atributo .example.com. RFC 2965 parece indicar explícitamente que una cookie no será enviado a example.com pero de igual manera dice que si se establece Domain=example.com, un punto se antepone, como si usted dijo .example.com. Tomados en conjunto, esto parece decir que si example.com devuelve establece una cookie con Domain=example.com no se que cookie de vuelta! Que no puede ser a la derecha.

¿Alguien puede aclarar lo que las reglas son realmente?

30voto

medina Puntos 1785

Citando el mismo RFC2109 leer:

 * Un Set-Cookie, desde la petición del huésped x.foo.com para Domain=.foo.com sería
 ser aceptado.

Por lo subdomain.example.com puede establecer una cookie para .example.com. Hasta ahora tan bueno.

 Las siguientes reglas se aplican a la elección aplicable cookie-valores de
 entre todas las cookies que el agente de usuario.

 Dominio De Selección
 El origen del servidor completo de host nombre de dominio que coincida con
 el atributo de Dominio de la cookie

Así que lo que hacemos tiene un dominio-partido?

 * Es un FQDN de la cadena y que tiene la forma de NB, donde N es un nombre no vacío
 cadena, B tiene la forma .B' y B' es un FQDN de la cadena. (Así, x.y.com
 el dominio de los partidos .y.com pero no y.com.)

Pero ahora example.com no de dominio que coincida .example.com de acuerdo a la definición. Pero www.example.com (o cualquier otro "nombre no vacío" en el dominio) lo haría. Este RFC es, en teoría, obsoleto por RFC2965, que dictaba las cosas acerca de cómo forzar un punto inicial para dominios en Set-Cookie2 de las operaciones.

Más importante, como se nota por @Tony, es el mundo real. Para echar un vistazo a lo que los agentes de usuario que están haciendo, ver

Firefox 3 nsCookieService.cpp

y

Chrome cookie_monster.cc

Para tener una perspectiva de lo real sitios que están haciendo, intentar jugar con wget uso de --save-cookies, --load-cookiesy --debug para ver lo que está pasando.

Usted encontrará probablemente que, de hecho, la mayoría de los sitios están utilizando alguna combinación de Set-Cookie de los mayores RFC de especificaciones con la "Acogida" de los valores, implícitamente, sin un punto inicial (como twitter.com ¿) o establecer valores de Dominio (con un punto inicial) y redirigir a un servidor como www.example.com (como google.com ¿).

2voto

Michael Hampton Puntos 88271

Si el navegador implementa RFC 6265, que cualquier navegador moderno debería estar haciendo en este momento, entonces establece una cookie para .example.com habrá el principal punto ignorado (sección 5.2.3), y luego se enviará la cookie al dominio desnudo y todos los subdominios.

No confíe en este comportamiento si tienes tráfico significativo de los exploradores más antiguos; Este RFC sólo data de 2011.

1voto

Tony Puntos 452

No debería ser posible. Sin embargo, como usted dice, ya que este no es un ampliamente documentado estándar, depende de lo que la pieza de software que está utilizando.

La mayoría de los navegadores modernos se adhieren a una determinada web "modelo de seguridad". El modelo efectivamente gobierna el comportamiento de los navegadores con respecto a la seguridad, en cosas como las galletas (específicamente cómo van a ser enviados a cualquier sitio web). El modelo también tiene la regla de que "de los navegadores no enviar cookies a los nombres de dominio que no se establecen."

Lo que se dice, domain.com debe ser capaz de establecer cookies para js.domain.com. js.domain.com sin embargo, sólo se puede establecer cookies por sí mismo. Pero todo esto es dependiendo del navegador que estés usando.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: