Segurança de cookies: sinalizadores HttpOnly e Secure
Proteja cookies com os atributos HttpOnly, Secure e SameSite.
Segurança de cookies: sinalizadores HttpOnly e Secure é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.
O sinalizador HttpOnly
Quando um cookie tem o sinalizador HttpOnly, JavaScript não pode acessá-lo por meio de document.cookie, impedindo o roubo de sessões baseado em XSS.
Definição de HttpOnly e Secure
Use a forma com matriz de opções (PHP 7.3+) para obter um código limpo e legível.
<?php
setcookie("session_id", $id, [
"expires" => time() + 3600,
"path" => "/",
"secure" => true,
"httponly" => true,
"samesite" => "Strict",
]);O sinalizador Secure
Um cookie Secure só é enviado por HTTPS. Em conexões HTTP, o navegador o omite, impedindo a interceptação por HTTP simples.
O atributo SameSite
SameSite controla quando os cookies são enviados com solicitações entre sites:
Strict— somente solicitações do mesmo siteLax— mesmo site + navegações de nível superiorNone— entre sites (requer Secure)
SameSite e CSRF
Definir SameSite como Strict ou Lax reduz o risco de CSRF, pois o cookie de sessão não é enviado com solicitações POST entre sites falsificadas.
Configurações de cookies de sessão no php.ini
Configure a segurança padrão dos cookies de sessão durante a execução:
<?php
ini_set("session.cookie_httponly", "1");
ini_set("session.cookie_secure", "1");
ini_set("session.cookie_samesite", "Lax");
session_start();Prefixos de cookies
Os navegadores respeitam prefixos nos nomes dos cookies:
__Secure-— o cookie deve ter o sinalizador Secure__Host-— deve ter Secure, Path=/ e nenhum atributo Domain
Exemplo de prefixo de cookie
Use o prefixo __Host- para vincular um cookie ao host exato.
<?php
setcookie("__Host-session", $token, [
"secure" => true,
"httponly" => true,
"samesite" => "Strict",
"path" => "/",
]);Revisão dos sinalizadores no DevTools
No DevTools do navegador → Aplicação → Cookies, verifique: HttpOnly marcado, Secure marcado e SameSite definido como Strict ou Lax.
Sem HttpOnly
Um script malicioso injetado por XSS pode executar document.cookie, ler o ID da sessão e enviá-lo a um atacante — assumindo o controle da conta.
Sem Secure
Em um site misto HTTP/HTTPS, o cookie de sessão é enviado em texto simples por HTTP. Um bisbilhoteiro da rede pode roubá-lo.
Resumo
Sempre defina HttpOnly e Secure nos cookies de sessão e autenticação. Adicione SameSite=Strict ou Lax. Use a forma com matriz de opções de setcookie().
Verificação rápida
Qual sinalizador impede JavaScript de ler um cookie?
Perguntas Frequentes
A aula “Segurança de cookies: sinalizadores HttpOnly e Secure” é grátis?
Sim — o texto completo de “Segurança de cookies: sinalizadores HttpOnly e Secure” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.
O que vou aprender em “Segurança de cookies: sinalizadores HttpOnly e Secure”?
Proteja cookies com os atributos HttpOnly, Secure e SameSite. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar PHP Academy?
Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Segurança de cookies: sinalizadores HttpOnly e Secure”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de PHP Academy?
Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Início e uso de sessões
- Boas práticas de segurança de sessões
- Definição e leitura de cookies
- Segurança de cookies: sinalizadores HttpOnly e Secure