Introdução
Os cookies são amplamente utilizados para armazenar informações no navegador do usuário, mas se não forem configurados corretamente, podem representar um risco de segurança. Utilizando os atributos HTTPOnly
e Secure
, podemos evitar ataques como o Cross-Site Scripting (XSS) e proteger a comunicação dos cookies contra interceptação.
Criando um cookie seguro no PHP
Para garantir que um cookie seja transmitido apenas via HTTPS e não possa ser acessado por scripts do lado do cliente, usamos a função setcookie()
com os atributos apropriados:
setcookie('usuario', 'João', [
'expires' => time() + 3600,
'path' => '/',
'domain' => '',
'secure' => true,
'httponly' => true,
'samesite' => 'Strict'
]);
Explicação dos parâmetros de segurança:
secure => true
: Garante que o cookie só seja transmitido em conexões HTTPS.httponly => true
: Impede que o cookie seja acessado via JavaScript, protegendo contra ataques XSS.samesite => 'Strict'
: Restringe o envio do cookie apenas para requisições feitas a partir do mesmo domínio, reduzindo o risco de ataques CSRF.
Verificando se o cookie foi definido corretamente
Podemos confirmar se o cookie foi armazenado no navegador utilizando:
if (isset($_COOKIE['usuario'])) {
echo 'Usuário: ' . $_COOKIE['usuario'];
} else {
echo 'Cookie seguro não encontrado!';
}
Caso o cookie tenha sido definido corretamente, ele será exibido. Caso contrário, é necessário verificar se o servidor está usando HTTPS e se as configurações do navegador permitem cookies seguros.
Importância dos cookies seguros em aplicações web
Sem os atributos HTTPOnly
e Secure
, um cookie pode ser acessado por scripts maliciosos ou transmitido de forma insegura pela rede. Isso expõe a aplicação a ataques, especialmente se o cookie contiver informações de autenticação.
Exemplos de ataques evitados:
- XSS (Cross-Site Scripting): Um atacante pode injetar scripts maliciosos que roubam cookies sem
HTTPOnly
. - Interceptação de Cookies: Sem
Secure
, cookies podem ser transmitidos em conexões HTTP inseguras, permitindo que sejam interceptados por invasores.
Conclusão
Criar cookies seguros no PHP é essencial para proteger a privacidade dos usuários e evitar vulnerabilidades comuns em aplicações web. Ao utilizar HTTPOnly
, Secure
e SameSite
, garantimos que os cookies sejam transmitidos de maneira segura e acessíveis apenas pelo servidor.
Por que configurar cookies seguros no PHP é essencial?
A segurança dos cookies é um aspecto fundamental no desenvolvimento de aplicações web. Muitos ataques bem-sucedidos ocorrem devido à falta de configurações adequadas, permitindo que invasores acessem informações sensíveis armazenadas nos cookies.
Uma boa prática recomendada é sempre ativar Secure
para garantir que os cookies sejam transmitidos apenas por conexões HTTPS. Além disso, HTTPOnly
evita que scripts do lado do cliente manipulem cookies, prevenindo ataques XSS que podem roubar credenciais de usuários.
Outro fator importante é a configuração do atributo SameSite
, que previne ataques CSRF ao restringir o envio de cookies apenas para requisições originadas no mesmo site. Com essas medidas, as aplicações se tornam significativamente mais seguras e os dados dos usuários são protegidos contra ameaças comuns na web.
Algumas aplicações:
- Armazenar tokens de autenticação de forma segura.
- Prevenir ataques XSS impedindo acesso ao cookie via JavaScript.
- Garantir que cookies só sejam transmitidos via HTTPS.
- Melhorar a proteção contra ataques CSRF.
Dicas para quem está começando
- Sempre utilize
Secure
para garantir que o cookie só seja transmitido em HTTPS. - Ative
HTTPOnly
para evitar que o cookie seja acessado por JavaScript malicioso. - Use
SameSite=Strict
para restringir o envio do cookie em requisições externas. - Teste a configuração dos cookies no navegador para garantir que foram definidos corretamente.
- Se precisar que o cookie seja acessível entre subdomínios, defina o parâmetro
domain
corretamente.

Gustavo Ferraz
Desenvolvedor backend com experiência em PHP, Java e integração de APIs em Node.js e Python.
Mais sobre o autor