Estoy trabajando en un sitio con múltiples subdominios, algunos de los cuales deberían tener su propia sesión.PHP: Control de dominio/subdominio de cookies
Creo que lo he solucionado, pero he notado algo sobre el manejo de cookies que no entiendo. No veo nada en los documentos que lo explique, así que pensé que vería si alguien aquí tiene algo que ver con la pregunta.
Si acabo de hacer:
session_start();
termino con una cookie de sesión como esto:
subdomain.example.net
Sin embargo, si hago cualquier intento de establecer la cookie dominio de mí mismo, ya sea como
ini_set('session.cookie_domain', 'subdomain.example.net');
o como
session_set_cookie_params(0, "/", "subdomain.example.net", false, false);
termino con una galleta para .subdomain.example.net (tenga en cuenta el punto de apertura), que creo que significa "coincide con todos los subdominios (o en este caso sub-subdominios).
Esto parece suceder con todas mis cookies en realidad, no solo la sesión. Si configuro el dominio de cookies yo mismo, automáticamente tiene el punto antepuesto, es decir, este dominio y todos sus subs. Si no configuro el dominio, lo hace bien utilizando solo el dominio actual.
¿Alguna idea de lo que hace esto y qué puedo hacer para controlar ese punto anterior?
Gracias!
No tiene que controlar el punto inicial porque es * ignorado * por el navegador, según RFC 6265, que es lo que implementan todos los navegadores modernos. Entonces, no piensen en el punto inicial. Aparte de eso, establezca explícitamente el dominio de la cookie o configúrelo en una cadena vacía para limitarlo al host de la solicitud actual. La biblioteca https://github.com/delight-im/PHP-Cookie tiene algunos controles convenientes para eso. – caw