/ / Como alterar o domínio do cookie de sessão para usuários existentes - php, session, cookies

Como alterar o domínio do cookie de sessão para usuários existentes - php, session, cookies

Meu aplicativo da Web PHP atualmente tem seu domínio de cookie de sessão definido como example.com. Eu gostaria de mudar isso para .example.com. Para novos visitantes, ini_set("session.cookie_domain", ".example.com") trabalho. Para visitantes que já possuem o cookie PHPSESSID antes de essa alteração ser feita, o domínio permanece com o valor antigo. Como posso alterar o domínio no cookie de sessão sem pedir que os usuários atuais excluam seus cookies?

  • Eu não posso usar JavaScript para atualizar o cookie porque ele é HTTPOnly por razões de segurança.
  • Excluir as sessões no servidor não redefine o cookie inteiro, apenas atualiza o valor do cookie (mantendo o mesmo domínio).
  • Os navegadores modernos preservam a sessão nas reinicializações, portanto, mesmo que o cookie esteja definido para expirar no final da sessão do navegador, a sessão do navegador nunca termina efetivamente.

A única possibilidade que posso fazer é definir o cookie para expirar no passado e, em seguida, redirecionar para obter um novo cookie. Mas não consigo saber quais visitantes têm o domínio do cookie definido incorretamente.

Respostas:

3 para resposta № 1

Definir um novo session_name() antes de iniciar a sessão. Dessa forma, o nome do cookie é alterado e qualquer cookie antigo será ignorado. Apenas novos cookies serão enviados e funcionarão para a sessão.