cookies - una - ¿Qué significa el prefijo de punto en el dominio de la cookie?
que son los cookies en el celular (4)
Del artículo erik.io/blog/2014/03/04/definitive-guide-to-cookie-domains :
Conclusión
Aunque las definiciones son algo diferentes, podemos simplificarlo para cualquiera de estas implementaciones como:
Otras observaciones que valen la pena:
Cuando no se establece un dominio en la cookie, la cookie solo debe coincidir con el nombre de host exacto de la solicitud. [NOTA: ¡esto es diferente de devolver un Set-Cookie con un dominio sin un punto!] Sin subdominios, sin coincidencias parciales. Esto significa simplemente no incluir el atributo de dominio; no es válido establecer un atributo de dominio vacío. Desafortunadamente, Internet Explorer parece tratar esto como el nombre de host junto con los subdominios .
Al configurar un dominio en la cookie, la opción segura es tenerlo precedido por un punto, como .erik.io. La cookie coincidirá con todos los subdominios.
Establecer un dominio de cookies sin un punto precedente, como erik.io, no es válido en las implementaciones RFC 2109, y producirá el mismo comportamiento que con un punto precedente en otras implementaciones. No hay forma de restringir una cookie a un dominio explícitamente establecido específico, sin incluir subdominios.
En todos los RFC, un dominio de cookie específico debe coincidir con el nombre de host actual, por concordancia normal. Establecer una cookie para www.erik.io en una respuesta de erik.io no es válida, ya que una cookie con dominio www.erik.io no coincide con erik.io, siendo la primera más específica.
En RFC 6265, los dominios están explícitamente menos encapsulados al analizar el encabezado Set-Cookie.
¿Cuál es la diferencia entre local.test.com
y .local.test.com
? La captura de pantalla es de Chrome.
El punto inicial en ".local.test.com" es cómo Chrome ve las cookies con un conjunto "Domain = local.test.com" (o un "Domain = .local.test.com", que es el mismo).
Las definiciones de Set-Cookie sin "Domain = something" ven el dominio (= host) sin un punto inicial.
Por lo tanto, el punto inicial en cromo no refleja si se utilizó o no un punto inicial del servidor, sino si esa cookie tenía o no un "Dominio = algo" en su definición del servidor. (Y si lo hubiera hecho, la cookie también se enviará a subdominios).
Al menos esto es lo que muestran mis pruebas. Chrome debería facilitar la lectura, por ejemplo, ver la cadena exacta que definió la cookie y cuándo fue recibida.
El punto inicial significa que la cookie también es válida para los subdominios; sin embargo, las recientes especificaciones HTTP (RFC 6265) cambiaron esta regla por lo que los navegadores modernos no deberían preocuparse por el punto inicial. El navegador viejo puede necesitar el punto implementando el RFC 2109 obsoleto.
Por ejemplo, si el valor del atributo de dominio es "example.com", el agente de usuario incluirá la cookie en el encabezado de Cookie al realizar solicitudes HTTP a example.com, www.example.com y www.corp.example. com. (Tenga en cuenta que un% x2E inicial ("."), Si está presente, se ignora aunque ese carácter no esté permitido, pero un% x2E posterior ("."), Si está presente, hará que el agente de usuario ignore el atributo. )
local.test.com
se usará para el dominio, mientras que .local.test.com
también se usará para los subdominios.