4 min de leitura
Cookie de sessão seguro: HttpOnly, Secure e SameSite em 5 minutos
O cookie de sessão é a chave da conta do usuário. Sem HttpOnly, um script malicioso o rouba; sem Secure, ele viaja sem criptografia. A configuração certa, pronta para copiar.
Quem tem o cookie de sessão está logado como o usuário — sem senha, sem código. Por isso ele precisa de três atributos que o navegador respeita.
HttpOnly: o JavaScript da página não consegue ler o cookie. Se um script malicioso entrar no site (um pacote comprometido, um campo que exibe HTML), ele não leva a sessão.Secure: o cookie só viaja por HTTPS.SameSite=Lax(ouStrict): o navegador não manda o cookie em pedidos disparados por outros sites, o que corta a maior parte do CSRF.
Express
res.cookie("sessao", token, {
httpOnly: true,
secure: true,
sameSite: "lax",
maxAge: 7 * 24 * 60 * 60 * 1000,
});Next.js (App Router)
import { cookies } from "next/headers";
(await cookies()).set("sessao", token, {
httpOnly: true,
secure: true,
sameSite: "lax",
path: "/",
maxAge: 60 * 60 * 24 * 7,
});SameSite=None só funciona junto com Secure, e só deve ser usado quando outro domínio realmente precisa do cookie. Na dúvida, fique com Lax.
Dicas curtas de segurança para quem cria com IA: siga @npx_vibedefender no Instagram.