xiro 0 Denunciar post Postado Dezembro 7, 2016 Bom dia, pessoal. como eu faço para usar session_regenerate_id de forma segura? assim esta certo? session_start(); // Inicia a sessão PHP $idvelho = session_id(); session_regenerate_id(); $idnovo = session_id(); ou eu tenho que fazer uma função com time (depois de 2 minutos deleta idvelho) para chamar session_regenerate_id e gerar o idnovo? Compartilhar este post Link para o post Compartilhar em outros sites
AndersonMamede 88 Denunciar post Postado Dezembro 7, 2016 Fiz a tradução do manual do PHP sobre a função session_regenerate_id semana passada, e lembro que a questão é que você não deve deletar a sessão antiga imediatamente após gerar o novo ID. Isso porque em redes instáveis, como wifi ou mobile, pode acontecer do pacote que contém o novo ID de sessão não chegar até o usuário (falha na rede); nesse caso o usuário acabaria perdendo a sessão porque o ID que ele tem nos cookies é o antigo e a sessão vinculada à ele foi removida. Por isso você não deve apagar a sessão imediatamente. Já a questão do tempo, é que enquanto você não apagar/invalidar a sessão antiga, ela vai estar disponível para uso, com todos os dados, por outra pessoa (como um hacker/cracker). Isso quer dizer que se o hacker/cracker obter/roubar o ID de sessão antigo, ele vai poder utilizar a sessão que está vinculada à esse ID "para sempre". Em poucas palavras: você não deve apagar a sessão antiga imediatamente (porque o usuário pode estar com o ID velho ainda), mas também não deve deixá-la disponível para sempre (porque outras pessoas poderiam utilizá-lo). Eu acredito que o exemplo #2 da documentação é o mais indicado para fazer esse gerenciamento, pois ele tem a verificação do tempo e também faz várias tentativas de iniciar a sessão com o novo ID (caso o usuário esteja com o ID antigo). Compartilhar este post Link para o post Compartilhar em outros sites
xiro 0 Denunciar post Postado Dezembro 9, 2016 Amigo obrigado pela sua explicação impecável. Qualquer dúvida posto aq. Compartilhar este post Link para o post Compartilhar em outros sites
AndersonMamede 88 Denunciar post Postado Dezembro 9, 2016 Beleza!! Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Dezembro 9, 2016 (depois de 2 minutos deleta idvelho) para chamar session_regenerate_id e gerar o idnovo? Começa ai as paranoias de Segurança! Recomendado para evitar ataques de Session Hijacking, é que você faça essa regeneração no momento de login ou nos extremos a cada hora no minimo, ou mais, pois existe outros, fatores não só este para impedir um roubo de sessão, SSL, token etc, senão seu sistema fica praticamente inviável se for utilizar o mesmo login entre subdomínios por exemplo. Compartilhar este post Link para o post Compartilhar em outros sites