Sessões seguras em PHP: HttpOnly, Secure e SameSite
Proteger a sessão é tão importante quanto proteger a senha: se o cookie de sessão for roubado, o atacante entra como o usuário. Três flags e uma boa prática resolvem a maior parte dos riscos.
Configurando o cookie
session_set_cookie_params([
'lifetime' => 0,
'path' => '/',
'secure' => true, // só trafega sob HTTPS
'httponly' => true, // JavaScript não acessa (mitiga XSS)
'samesite' => 'Lax', // mitiga CSRF
]);
session_start();
HttpOnly impede que um XSS leia o cookie; Secure garante que ele só vá por HTTPS; SameSite evita que viaje em requisições de outros sites.
Regenere o ID no login
Para evitar “session fixation”, troque o ID da sessão assim que o usuário autenticar:
session_regenerate_id(true);
$_SESSION['user_id'] = $id;
Outras boas práticas
Defina um tempo de inatividade (expira após X minutos), destrua a sessão por completo no logout e use HTTPS em todo o site. Combine com proteção CSRF para fechar o cerco.
Perguntas frequentes
SameSite=Lax ou Strict?
Lax é o melhor equilíbrio para a maioria dos sites. Strict é mais seguro, mas pode atrapalhar links externos que dependem de sessão.
Onde devo guardar os dados de sessão?
Em produção com vários servidores, centralize em Redis ou banco, em vez de arquivos locais, para a sessão funcionar em todos os nós.
Continue lendo
- Upload de arquivos sem brechas em PHP
- Core Web Vitals em 2026: LCP, INP e CLS explicados
- Como melhorar o INP, a métrica mais reprovada em 2026
Procurando uma agência especialista em segurança para WordPress?
O Site Seguro é especialista 100% em segurança WordPress, com SLA, garantia contra reincidência e atendimento humano no Brasil.
Conhecer nosso serviço →