CREATE TABLE user_sessions (session_id VARCHAR(32) NOT NULL PRIMARY KEY, user_id INT NOT NULL, ip_address VARCHAR(45) NOT NULL, user_agent TEXT NOT NULL, last_activity TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);Nesta estrutura, armazenamos o ID da sessão, geralmente gerado pelo PHP, juntamente com o endereço IP do usuário e o agente do usuário (normalmente o navegador), o que ajuda a identificar possíveis ataques com mais precisão.
Manipulação Segura de Sessões
Segurança A partir do momento em que uma sessão é iniciada, certifique-se sempre de usar cookies seguros (flag Secure) ao trabalhar com HTTPS. Você também deve habilitar a opção HttpOnly para evitar ataques XSS que podem roubar cookies.
// Configuração segura para iniciar sessões session_set_cookie_params([ lifetime => 0, path => /, domain => $_SERVER[HTTP_HOST], secure => true, // Enviar cookie somente por HTTPS httponly => true // Acessível somente via protocolo HTTP]); session_start();Regenerar IDs de Sessão
É uma boa prática regenerar o ID de sessão na inicialização ou após um login bem-sucedido. Isso ajuda a mitigar os riscos de correções de sessão ou sequestro:
if (!isset($_SESSION[initiated])) { session_regenerate_id(true); $_SESSION[initiated] = true; }Manutenção e Validação
Além do armazenamento seguro usando bancos de dados como o MySQL, você também deve considerar a implementação de um sistema regular para validar a atividade dentro da sessão:
- Limite de Tempo: Defina um tempo máximo de inatividade após o qual a sessão será destruída.
- Alteração de IP/Agente do Usuário: Armazene e compare cada nova solicitação com os valores antigos.
Manutenção Web
Certifique-se também de que seu site esteja permanentemente otimizado para evitar tempo de inatividade por meio de serviços de manutenção web adequados, beneficiando-se também de O conhecimento geral sobre servidores VPS pode ser encontrado em Servidores VPS e Hospedagem.
Comentários
0Seja o primeiro a comentar