PHP setcookie () para dominio pero NO subdominios
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?
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.