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