O Que É um Token CSRF? Bloqueando Requisições Forjadas
Um token CSRF é um valor imprevisível vinculado a uma sessão de usuário que prova que uma requisição que altera estado realmente originou-se da sua própria aplicação.
Um token CSRF defende contra cross-site request forgery, um ataque em que um site malicioso engana o browser de um usuário autenticado para fazer uma requisição indesejada a outro site. Como o browser envia cookies de sessão automaticamente, a requisição forjada parece autêntica. Um token CSRF quebra o ataque ao exigir um valor secreto que o atacante não pode conhecer.
O ataque que ele previne
Em um ataque CSRF, uma vítima autenticada em um site visita uma página maliciosa que silenciosamente envia uma requisição a esse site. O browser anexa o cookie de sessão, então a requisição parece legítima. Sem proteção, a ação é executada sob a identidade da vítima.
Como o token defende
- O servidor incorpora um token secreto, por sessão, em seus próprios formulários.
- Requisições legítimas incluem o token; o servidor o verifica.
- Uma forjadura cross-site não consegue ler o token, então sua requisição é rejeitada.
Por que funciona
O atacante pode fazer o browser enviar uma requisição, mas não consegue ler a resposta do seu site, então não pode descobrir o token. Exigir esse token impossível de adivinhar em ações que alteram estado faz com que requisições forjadas falhem na validação.
Tokens CSRF e cookies SameSite
Defesas modernas combinam tokens CSRF com o atributo de cookie SameSite, que limita quando cookies são enviados cross-site. Juntos, eles fornecem proteção em camadas; depender de apenas um pode deixar brechas dependendo do browser e do cenário.
Proteção CSRF em CI/CD
Se você constrói aplicações web, a proteção CSRF em endpoints que alteram estado faz parte da codificação segura. Testes e revisões de segurança no seu pipeline devem confirmar que formulários e métodos inseguros exigem um token válido antes de a mudança chegar à produção.
Escopo da defesa
Tokens CSRF protegem fluxos baseados em browser autenticados por cookie. APIs autenticadas por bearer token (o padrão que pipelines usam) geralmente não são vulneráveis a CSRF, porque não dependem de cookies enviados automaticamente.
Principais conclusões
- Um token CSRF é um valor impossível de adivinhar que prova que uma requisição veio da sua própria aplicação.
- Ele bloqueia cross-site request forgery em ações que alteram estado autenticadas por cookie.
- Combine-o com cookies SameSite; APIs com bearer token geralmente não são suscetíveis a CSRF.