1001Ferramentas
🍪 Segurança

Validador de prefixos __Secure-/__Host-

Valida se cookies com prefixos __Secure- e __Host- atendem regras (Secure, Domain, Path) conforme RFC 6265bis.

—

Os prefixos que tornam um cookie mais difícil de forjar

Um cookie de sessão pode ser sobrescrito por um subdomínio comprometido ou por uma conexão sem HTTPS, mesmo que o site principal esteja bem configurado. Os prefixos __Secure- e __Host- existem para fechar essa porta: quando o nome do cookie começa com um deles, o navegador só aceita gravá-lo se determinadas condições estiverem cumpridas, e recusa em silêncio caso contrário.

Cole um ou mais cabeçalhos Set-Cookie, um por linha, e a página confere cada regra. Para __Secure-, basta o atributo Secure. Para __Host-, que é o mais restritivo, são três exigências simultâneas: Secure presente, Path igual a barra, e Domain ausente. É essa combinação que amarra o cookie ao host exato que o gravou, sem que nenhum subdomínio possa criá-lo ou substituí-lo.

A recusa do navegador não gera erro visível — o cookie simplesmente não aparece, e o efeito é login que não persiste sem nenhuma mensagem no console. Por isso vale conferir o cabeçalho antes de subir. Cookie sem prefixo é reportado aqui como tal: não é erro, apenas não recebe nenhuma proteção adicional, e a validação se limita a apontar isso.

Perguntas frequentes

O prefixo faz parte do nome do cookie?
Faz. O cookie se chama literalmente __Host-session, e é assim que ele aparece na leitura do lado do servidor. Não existe um atributo separado: o prefixo no nome é o próprio mecanismo, e foi desenhado assim para funcionar em navegadores antigos, que simplesmente o tratam como nome comum.
Por que __Host- proíbe Domain?
Porque Domain é justamente o que permite compartilhar o cookie entre subdomínios — e é o caminho pelo qual um subdomínio invadido sobrescreve o cookie do domínio principal. Sem Domain, o cookie fica preso ao host exato que o gravou, que é a garantia que o prefixo oferece.
Isso substitui HttpOnly e SameSite?
Não, resolve outro problema. HttpOnly impede o JavaScript de ler o cookie, protegendo contra XSS. SameSite controla o envio em requisição vinda de outro site, mitigando CSRF. Os prefixos cuidam de quem pode gravar. Um cookie de sessão bem configurado costuma usar os três.

Ferramentas Relacionadas