Introdução
Cookies são pequenos arquivos armazenados no navegador do usuário, usados para manter informações entre requisições. No PHP, podemos criar cookies facilmente utilizando a função setcookie()
.
Criando um cookie básico no PHP
A maneira mais simples de criar um cookie no PHP é:
setcookie('usuario', 'João', time() + 3600, '/');
Explicação do código:
'usuario'
: Nome do cookie.'João'
: Valor armazenado no cookie.time() + 3600
: Define que o cookie expira em 1 hora.'/'
: Faz com que o cookie seja acessível em todo o site.
Criando um cookie seguro
Para reforçar a segurança, podemos adicionar atributos como Secure
e HttpOnly
:
setcookie('usuario', 'João', time() + 3600, '/', '', true, true);
true, true
: Ativa os atributosSecure
(apenas HTTPS) eHttpOnly
(não acessível via JavaScript).
Criando um cookie utilizando um array de parâmetros
A partir do PHP 7.3+, podemos definir cookies usando setcookie()
com um array:
setcookie('usuario', 'João', [
'expires' => time() + 3600,
'path' => '/',
'secure' => true,
'httponly' => true,
'samesite' => 'Strict'
]);
Explicação dos parâmetros adicionais:
samesite => 'Strict'
: Evita envio do cookie em requisições de terceiros, protegendo contra ataques CSRF.
Verificando se um cookie foi criado
Podemos verificar se um cookie existe antes de acessá-lo:
if (isset($_COOKIE['usuario'])) {
echo 'Usuário: ' . $_COOKIE['usuario'];
} else {
echo 'Cookie não encontrado!';
}
Se o cookie existir, o valor será exibido. Caso contrário, o sistema informará que ele não foi encontrado.
Conclusão
Criar cookies no PHP é uma tarefa simples, mas é importante seguir boas práticas de segurança, como definir cookies com HttpOnly
, Secure
e SameSite
. Esses detalhes garantem que os cookies sejam usados de forma segura e eficiente.
Por que configurar cookies corretamente é essencial para a segurança?
Cookies são amplamente utilizados em aplicações web para armazenar informações temporárias do usuário. Desde preferências de idioma até autenticação persistente, eles desempenham um papel importante na personalização da experiência do usuário.
No entanto, o uso inadequado de cookies pode levar a vulnerabilidades, como o roubo de sessão via ataques XSS (Cross-Site Scripting). Por isso, desenvolvedores devem sempre ativar HttpOnly
para impedir o acesso via JavaScript e Secure
para garantir que o cookie só seja transmitido em conexões HTTPS.
Além disso, o atributo SameSite
se tornou uma exigência em navegadores modernos para evitar que cookies sejam utilizados de forma maliciosa em requisições cross-site. Ao configurar corretamente os cookies, garantimos um ambiente seguro e funcional para os usuários.
Algumas aplicações:
- Armazenar preferências do usuário, como idioma ou tema.
- Manter o usuário autenticado sem necessidade de login contínuo.
- Guardar informações temporárias em aplicações web.
- Melhorar a personalização da experiência do usuário.
Dicas para quem está começando
- Sempre use
Secure
eHttpOnly
para proteger seus cookies. - Defina um tempo de expiração adequado para cada tipo de cookie.
- Verifique se os cookies estão ativos no navegador antes de usá-los.
- Evite armazenar informações sensíveis diretamente nos cookies.
- Use
SameSite
para evitar ataques de requisição cross-site.
Contribuições de Lucas Martins