Criando um cookie no PHP de forma correta

Método passo a passo para criar cookies no PHP com diferentes configurações de segurança e tempo de expiração.

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().

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.

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 atributos Secure (apenas HTTPS) e HttpOnly (não acessível via JavaScript).

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.

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.

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 e HttpOnly 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

Compartilhe este tutorial: Como criar um cookie no PHP?

Compartilhe este tutorial

Continue aprendendo:

Como configurar o session.cookie_lifetime no PHP?

Método para definir o tempo de vida do cookie de sessão no PHP, garantindo maior controle sobre a duração da sessão do usuário.

Tutorial anterior

Como recuperar o valor de um cookie no PHP?

Método correto para acessar o valor de um cookie no PHP e tratar casos em que o cookie pode não existir.

Próximo tutorial