Pregunta

¿Hay alguna forma de configurar una cookie que sea no legible en subdominios? En otras palabras, tenga la cookie disponible en domain.com , pero no www.domain.com o xyz.domain.com .

//this is what i'm "intending"...
setcookie($name,$value,$expires,'/','domain.com');
//however, this is how it behaves:
setcookie($name,$value,$expires,'/','.domain.com');

El razonamiento: estoy configurando un CDN estático en un subdominio y no quiero que las cookies de sesión de usuario vayan y vengan para cada imagen, archivo css, archivo js, ??etc.

... ¿tengo que recurrir al uso de www.domain.com para mi sitio? ¿Hay alguna solución?

¿Fue útil?

Solución

Aparentemente, tener una cookie en " domain.com " que coincida con " *. domain.com " es comportamiento esperado.

Por ejemplo: COOKIES PERSONENTES DEL ESTADO DEL CLIENTE HTTP estado (algunos énfasis son míos ) :

  

domain=DOMAIN_NAME

     

Al buscar en la lista de cookies   cookies válidas, una comparación de   los atributos de dominio de la cookie son   hecho con el nombre de dominio de Internet de   el host desde el cual será la URL   traído ...
" Coincidencia de cola " medio   ese atributo de dominio coincide   contra la cola de la totalmente   nombre de dominio calificado del host. A   atributo de dominio de " acme.com " haría   coincidir con los nombres de host " anvil.acme.com " como   así como '' shipping.crate.acme.com '' .

     

Solo hosts dentro del dominio especificado   puede establecer una cookie para un dominio y   los dominios deben tener al menos dos (2)   o tres (3) períodos en ellos para   evitar dominios de la forma: " .com " ;,   " .edu " ;, y " va.us " ;. Cualquier dominio que   falla dentro de uno de los siete especiales   dominios de nivel superior enumerados a continuación solamente   requieren dos períodos Cualquier otro dominio   requiere al menos tres. El siete   Los dominios especiales de nivel superior son: " COM " ;,   " EDU " ;, " NET " ;, " ORG " ;, " GOV " ;, " MIL " ;, y   " INT " ;.

Entonces, tendrás que:

  • use " www.domain.com " para su sitio
  • o use un nombre de dominio totalmente diferente para su contenido estático (como " .anotherdomain.com ")
    • por ejemplo, esto es lo que se hace en stackoverflow: el contenido estático se sirve desde sstatic.net

Otros consejos

esta es la razón por la cual bastantes sitios (incluido este) registran un dominio dedicado para su uso como CDN.

No es posible ya que el dominio de la cookie es la cola coincide con el nombre del dominio . Tendrás que ir con www.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top