Também disponível em: English · Español · Français · العربية
Cabeçalho Set-Cookie: atributos, SameSite e o prefixo __Host-
Monte um cabeçalho de cookie ou cole um, e descubra se o navegador vai guardá-lo ou jogá-lo fora sem dizer nada.
O que é o cabeçalho Set-Cookie?
Set-Cookie é como um servidor pede ao navegador que lembre de algo. O cabeçalho é um nome e um valor seguidos de atributos que decidem quanto tempo o cookie vive, quais requisições o levam e se o script pode lê-lo: Expires, Max-Age, Domain, Path, Secure, HttpOnly e SameSite.
Onde essas regras estão escritas surpreende mais do que as próprias regras. A RFC 6265, o padrão publicado em 2011, define os seis primeiros. Ela contém a palavra SameSite exatamente zero vezes, e nem __Host- nem __Secure- aparecem nela. Os três estão em draft-ietf-httpbis-rfc6265bis, um Internet-Draft que nunca virou RFC — e a revisão 22, a atual, traz a data de expiração de 4 de junho de 2026.
Todos os navegadores implementam o rascunho. Então as regras que decidem se o seu cookie de sessão é seguro estão, formalmente, num documento expirado, enquanto o que é padrão não diz nada sobre elas. As duas coisas dá para conferir em dois arquivos, e esta página marca de qual documento vem cada atributo.
Como usar
- Digite ou cole o cabeçalho. Só o valor do campo, sem o prefixo Set-Cookie:. Os botões de atributo e o campo de texto são a mesma coisa, então mexer num reescreve o outro.
- Leia o veredito primeiro. A linha de cima diz se o navegador vai guardar o cookie ou rejeitá-lo, porque esses são os dois únicos desfechos que importam e o segundo é invisível em execução.
- Se for rejeitado, use o botão de correção. Ele reescreve o cookie com o prefixo __Host- e os três atributos que esse prefixo exige, que é a forma mais forte que um cookie pode ter.
Os prefixos são aplicados no silêncio
Um cookie cujo nome começa com __Host- precisa ter Secure, precisa ter Path=/ exatamente e não pode ter atributo Domain. Um que começa com __Secure- só precisa de Secure. Erre qualquer um deles e o navegador não avisa nem registra nada — ele simplesmente se recusa a guardar o cookie, e a próxima requisição chega sem ele. É por isso que esse tipo de erro costuma aparecer como um login que parou de funcionar, e não como um problema de cabeçalho.
Os dois prefixos não são a mesma regra, e tratá-los igual é o erro comum. __Secure- permite Domain e qualquer Path; __Host- proíbe o Domain justamente porque é isso que prende o cookie a um host exato em vez de compartilhá-lo com todos os subdomínios. Se um subdomínio que você não controla totalmente pode setar cookies, essa diferença é toda a fronteira de segurança.
Os prefixos também diferenciam maiúsculas de minúsculas, nas palavras da própria especificação. Um nome começando com __host- em minúsculas não recebe proteção alguma enquanto aparenta exatamente o contrário, então esta página relata isso como achado próprio em vez de ficar calada.
SameSite=None segue o mesmo padrão: exige Secure, e sem ele o cookie é rejeitado. Isso pega fluxos incorporados e entre sites o tempo todo, porque o valor que soa mais permissivo é o que tem uma exigência extra grudada.
O que esta página não faz
Ela confere um cabeçalho isolado. Não tem como saber se você está em HTTPS, e cookies Secure são descartados em HTTP puro por mais correto que o cabeçalho pareça; nem conhece o seu domínio, então não pode dizer se o Domain que você definiu é um que você tem permissão de definir.
Ela também não impõe Partitioned, o atributo do CHIPS. Partitioned aparece zero vezes na revisão 22 da 6265bis — está num rascunho separado —, então esta página o lista como definido em outro lugar em vez de fingir que ele pertence ao mesmo documento que o resto.
E ela apresenta o que as especificações dizem, não o que o seu framework faz. A maioria seta cookies por um auxiliar com padrões próprios, e vários setam SameSite=Lax por você, pedindo ou não. Conferir o cabeçalho que você realmente envia é o passo útil; esta página diz o que aquele cabeçalho significa.
Por que é grátis?
As regras são uma tabela pequena e a análise acontece no seu próprio navegador. Nada do que você digita é enviado, nada é registrado e não há conta a criar.
Sem cadastro, sem limites e sem marca d'água em nada que você copiar.