Cross Site Request Forgery (CSRF, tambem XSRF ou Session Riding) e um ataque que forca um usuario autenticado a executar uma acao indesejada em uma aplicacao onde tem sessao aberta. O atacante prepara um link, imagem ou formulario malicioso em site que controla. Quando a vitima visita essa pagina ainda logada no site alvo (banco online, painel WordPress, webmail), o navegador envia automaticamente a requisicao com o cookie de sessao valido. O servidor nao distingue a requisicao forjada da real: transfere dinheiro, troca email, deleta post, da admin. CSRF foi numero 5 no OWASP Top 10 de 2007 e 2010, saiu do Top 10 em 2017 e esta listado no OWASP Top 10 2021 dentro de A01 Broken Access Control. O verme Samy no MySpace (outubro 2005, mais de 1 milhao de perfis em 20 horas) e o caso historico mais famoso.
Como funciona um ataque CSRF?
- Vitima logada no alvo.
- Alvo executa acoes com base apenas em cookies.
- Vitima visita pagina do atacante.
<img src="https://banco.example.com/transferir?para=ATACANTE&valor=10000">Alvos tipicos
- Bancos e pagamentos.
- Webmail.
- Paineis de admin.
- Redes sociais (verme Samy).
- E-commerce.
- Roteadores e IoT.
CSRF vs XSS
| Propriedade | CSRF | XSS |
|---|---|---|
| Efeito | Forca envio de requisicao | Executa JS do atacante |
| Execucao no alvo | Nao | Sim |
| Le resposta | Nao | Sim |
| Quebra token CSRF | Nao | Sim |
| Defesa principal | Tokens, SameSite | Encoding, CSP |
Defesas padrao
- Token anti CSRF.
- Cookie SameSite (default Chrome desde fevereiro 2020).
- Double submit cookie.
- Verificar Origin e Referer.
- Cabecalho customizado para AJAX.
- Reautenticacao para acoes criticas.
- POST em vez de GET para mudancas.
Protecao do WordPress
WordPress usa Nonces. Funcoes: wp_nonce_field(), wp_create_nonce(), check_admin_referer(), check_ajax_referer(). Duracao 24 horas.
SPA e REST API
SameSite=Strictno cookie de sessao.- Cabecalho
X-CSRF-Token. - JWT em
Authorization: Bearerelimina CSRF mas aumenta risco XSS.
Incidentes reais
- Verme Samy MySpace, outubro 2005.
- YouTube 2008, Netflix 2006.
- Plugins WordPress em 2024 (Forminator, LiteSpeed Cache, Royal Elementor Addons).
- Roteadores domesticos (estudo 2018, mais de 70 por cento vulneraveis).
Como o InspectWP ajuda?
InspectWP analisa cabecalhos Set-Cookie e reporta atributos SameSite e Secure.