0Pricing
PHP Academy · Aula

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 site
  • Lax — mesmo site + navegações de nível superior
  • None — 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

  1. Início e uso de sessões
  2. Boas práticas de segurança de sessões
  3. Definição e leitura de cookies
  4. Segurança de cookies: sinalizadores HttpOnly e Secure
← Voltar para PHP Academy