← Guias
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 (ou Strict): 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.