CSRF — Cross-Site Request Forgery
CSRF força usuários autenticados a executar ações indesejadas. Veja como funciona em SPAs com cookies SameSite, APIs REST e como implementar CSRF tokens corretamente.
O Que É CSRF
Cross-Site Request Forgery (CSRF) engana um usuário autenticado para executar ações indesejadas em uma aplicação web onde ele está logado. O atacante hospeda uma página que faz uma requisição para a aplicação alvo — o browser envia os cookies automaticamente. Em aplicações modernas com SPA + JWT em localStorage, CSRF é menos comum, mas APIs que usam cookies ainda são vulneráveis se SameSite estiver incorreto.
Exemplo Real de Ataque
<!-- Página maliciosa em outra origem -->
<!-- Força POST autenticado para a aplicação alvo -->
<html>
<body onload="document.forms[0].submit()">
<form method="POST" action="https://bank.empresa.com.br/api/transferir">
<input name="para_conta" value="333.333.333-33">
<input name="valor" value="5000">
<!-- Sem CSRF token → servidor aceita! -->
</form>
</body>
</html>Impacto no Negócio e Compliance
Execução de operações financeiras (transferências, compras), alteração de dados de conta (email, senha, chave PIX), ações administrativas. Em sistemas bancários: CSRF em endpoint de transferência pode drenar contas de usuários vítimas com um único clique em link malicioso.
Como Remediar
# ✅ CSRF Token via Double Submit Cookie
import secrets
def generate_csrf_token():
return secrets.token_urlsafe(32)
# No response: set cookie + retorne no body/header
# Cookie: csrf_token=abc123; SameSite=Strict; Secure
# Header X-CSRF-Token: abc123
# Validação no servidor:
def validate_csrf(request):
cookie_token = request.cookies.get("csrf_token")
header_token = request.headers.get("X-CSRF-Token")
if not cookie_token or cookie_token != header_token:
raise HTTPException(status_code=403, detail="CSRF validation failed")
# ✅ Alternativa moderna: SameSite=Strict cookies (sem CSRF token necessário)
# Set-Cookie: session=...; SameSite=Strict; Secure; HttpOnlyComo a Veyronn Detecta Esta Vulnerabilidade
Verificamos ausência de CSRF tokens, validação incorreta (comprimento, aleatoriedade), e configurações incorretas de SameSite cookies. Testamos endpoints de ação em formulários HTML e APIs REST que aceitam cookies.
Vulnerabilidades Relacionadas
Pronto para Contratar seu Próximo Pentest?
Adquira nossa avaliação pontual feita pelos melhores profissionais do mercado ou implemente o software da Veyronn 24/7.
