Todos os guias
Severidade AltaSegurança de cookies

As flags de cookie Secure, HttpOnly e SameSite

Os cookies de sessão são um alvo e tanto. Três atributos — Secure, HttpOnly e SameSite — determinam se um atacante consegue roubá-los ou usá-los de forma indevida. A falta de flags leva direto ao sequestro de sessão e a CSRF.

O que é

Secure envia o cookie só por HTTPS. HttpOnly o esconde do JavaScript (document.cookie). SameSite controla se ele é enviado em requisições entre sites.

Juntos, eles reduzem a superfície de ataque: um atacante não consegue ler o cookie por um script injetado, não consegue capturá-lo por HTTP e não consegue se aproveitar dele a partir de outro site.

Por que importa

Sem HttpOnly, qualquer falha de XSS pode ler o cookie de sessão e entregar ao atacante uma sessão logada. Sem Secure, o cookie vaza em qualquer requisição HTTP pura.

Sem SameSite, o navegador anexa o cookie a requisições entre sites, que é o mecanismo do qual os ataques CSRF dependem.

Como corrigir

Defina os três nos cookies de sessão

A maioria dos frameworks expõe isso como opções na hora de definir o cookie.

res.cookie("session", token, {
  secure: true,
  httpOnly: true,
  sameSite: "lax", // or "strict" for maximum protection
  path: "/",
});
Use prefixos no nome do cookie

Nomear um cookie com __Host- força o navegador a exigir Secure, Path=/ e nenhum Domain — uma base sólida e autoaplicável para os cookies de sessão.

Lembre que SameSite=None precisa de Secure

Se você realmente precisa de cookies entre sites, SameSite=None só é respeitado quando Secure também está definido; caso contrário, os navegadores modernos descartam o cookie.

FAQ

Lax ou Strict para o SameSite?

Lax é um padrão seguro que ainda permite as navegações de nível superior. Strict é mais rígido, mas pode quebrar fluxos em que os usuários chegam por links externos esperando estar logados.

Essas flags impedem o XSS?

O HttpOnly limita o dano do XSS ao esconder o cookie, mas não impede o XSS. Combine-o com uma Content-Security-Policy forte.

Seu app está afetado?

O AppSafe verifica isso e dezenas de outros problemas em um único escaneamento grátis.

Escanear meu app grátis