Ao enviar um formulário no Mastodon, como fazer login, publicar um status ou alterar configurações, você pode ver o erro CSRF Token Mismatch. Esse erro significa que o token de segurança que verifica sua sessão no navegador não correspondeu ao que o servidor esperava. A causa geralmente é um cookie de sessão desatualizado ou ausente, uma extensão do navegador que bloqueia ou modifica requisições, ou um proxy reverso mal configurado que remove o token. Este artigo explica por que ocorre a incompatibilidade e fornece correções passo a passo para os cenários mais comuns.
Principais Conclusões: Corrigindo o Erro CSRF Token Mismatch no Mastodon
- Limpe os cookies e o cache do navegador: Remove dados de sessão desatualizados que causam incompatibilidade de token ao enviar formulários.
- Desative extensões do navegador: Extensões que bloqueiam ou modificam cookies podem impedir que o token CSRF seja enviado corretamente.
- Verifique a configuração do proxy reverso (instâncias auto-hospedadas): Certifique-se de que o Nginx ou Apache não remova ou altere o cookie
_csrf_token.
Por que o Mastodon Exibe o Erro CSRF Token Mismatch
A proteção contra Cross-Site Request Forgery (CSRF) é um recurso de segurança integrado ao Mastodon. Cada formulário inclui um token oculto que o servidor gera e armazena em um cookie de sessão. Quando você envia o formulário, o navegador envia tanto o token quanto o cookie. O servidor os compara. Se não corresponderem, o Mastodon rejeita a requisição com o erro CSRF Token Mismatch.
A incompatibilidade ocorre em três cenários principais:
- Sessão desatualizada: Seu navegador ainda tem um cookie de sessão antigo de uma visita anterior, mas o servidor regenerou o token. Isso geralmente acontece após uma reinicialização do servidor ou um longo período de inatividade.
- Interferência de terceiros: Extensões do navegador que bloqueiam cookies, modificam cabeçalhos ou limpam dados de sessão podem remover o cookie CSRF antes do envio do formulário.
- Configuração incorreta do proxy reverso: Se você executa uma instância auto-hospedada do Mastodon atrás do Nginx ou Apache, o proxy pode remover ou reescrever o cookie
_csrf_token, impedindo a validação pelo servidor.
Passos para Limpar a Sessão do Navegador e Corrigir o Erro
A correção mais rápida é limpar o cookie de sessão da sua instância do Mastodon. Isso força o navegador a solicitar um novo token CSRF.
- Abra as ferramentas do desenvolvedor do seu navegador.
Pressione F12 (Windows) ou Cmd+Option+I (Mac) para abrir o DevTools. Clique na aba Application (Chrome/Edge) ou Storage (Firefox). - Localize os cookies da sua instância do Mastodon.
Na barra lateral esquerda, expanda Cookies e selecione o domínio da sua instância do Mastodon (por exemplo,mastodon.social). - Exclua o cookie de sessão.
Encontre o cookie chamado_mastodon_sessionou_csrf_token. Clique com o botão direito e escolha Delete. Se não tiver certeza de qual cookie remover, exclua todos os cookies desse domínio. - Recarregue a página do Mastodon.
Pressione Ctrl+R (Windows) ou Cmd+R (Mac) para atualizar. O navegador solicitará uma nova sessão e um novo token CSRF. Tente enviar o formulário novamente.
Se Limpar Cookies Não Funcionar: Limpe o Cache Completo do Navegador
Às vezes, ativos de página em cache podem interferir no envio do formulário. Limpe o cache completo da sua instância do Mastodon.
- Abra a caixa de diálogo de limpeza de dados de navegação do seu navegador.
Pressione Ctrl+Shift+Delete (Windows) ou Cmd+Shift+Delete (Mac). - Selecione um intervalo de tempo.
Escolha Todo o período para garantir que nenhum dado desatualizado permaneça. - Marque as caixas para Cookies e Imagens e arquivos em cache.
Desmarque outros itens, como senhas ou dados de preenchimento automático, a menos que queira limpá-los também. - Clique em Limpar dados.
Recarregue o Mastodon e teste o formulário novamente.
Se o Erro Persistir: Desative as Extensões do Navegador
Extensões que gerenciam cookies, bloqueiam rastreadores ou impõem configurações de privacidade rigorosas podem remover ou alterar o cookie CSRF. Teste com as extensões desativadas.
- Abra a página de gerenciamento de extensões do seu navegador.
No Chrome, digitechrome://extensionsna barra de endereços. No Firefox, digiteabout:addons. No Edge, digiteedge://extensions. - Desative todas as extensões.
Desative cada extensão. Alternativamente, use um perfil do navegador sem extensões instaladas. - Reinicie o navegador e teste o Mastodon.
Abra o Mastodon na mesma janela e envie o formulário que falhou anteriormente. Se o erro desaparecer, reative as extensões uma a uma para identificar a culpada.
Extensões Comuns que Causam CSRF Token Mismatch
- Privacy Badger ou uBlock Origin em modo estrito: Podem bloquear o cookie definido pelo Mastodon.
- Cookie Auto-Delete ou Self-Destructing Cookies: Limpam cookies de sessão muito cedo, antes do envio do formulário.
- NoScript ou ScriptSafe: Podem bloquear o JavaScript que gera o token CSRF.
Correção para Instâncias Auto-Hospedadas do Mastodon: Verifique a Configuração do Proxy Reverso
Se você executa sua própria instância do Mastodon atrás de um proxy reverso como Nginx ou Apache, o proxy pode remover ou alterar o cookie _csrf_token. Esta é a causa mais comum para administradores de servidores.
Correção na Configuração do Nginx
Certifique-se de que sua configuração do Nginx não substitua o cabeçalho Set-Cookie. Adicione ou verifique estas linhas dentro do bloco location /:
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cookie_path / "/; Secure; HttpOnly";
A diretiva proxy_cookie_path não deve remover o cookie _csrf_token. Se você usar um caminho personalizado, certifique-se de que o domínio do cookie corresponda exatamente ao domínio da sua instância do Mastodon.
Correção na Configuração do Apache
No seu host virtual do Apache, habilite os módulos mod_proxy e mod_proxy_http. Adicione esta diretiva para preservar os cookies:
ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ ProxyPreserveHost On Header always edit Set-Cookie ^(.)$ $1;Secure;HttpOnly
Não use Header unset Set-Cookie ou RequestHeader unset Cookie em nenhum lugar da sua configuração. Esses comandos removem o token CSRF.
Se o Mastodon Ainda Mostrar o Erro CSRF Após Todas as Correções
Erro Persiste em uma Janela Privada ou Anônima
Se o erro ocorrer em uma janela privada, o navegador pode ter o bloqueio de cookies de terceiros ativado por padrão. No Chrome, vá em Configurações > Privacidade e segurança > Cookies de terceiros e defina como Permitir todos os cookies para o domínio do Mastodon. No Firefox, verifique Configurações > Privacidade e Segurança > Proteção contra rastreamento aprimorada e adicione sua instância do Mastodon à lista de exceções.
Erro Ocorre Apenas em um Formulário Específico
Se apenas um formulário, como o de login, falhar enquanto outros funcionam, o formulário pode estar em cache. Abra a página do formulário com uma atualização forçada: pressione Ctrl+F5 (Windows) ou Cmd+Shift+R (Mac). Se o erro continuar, verifique o console do navegador em busca de erros JavaScript que possam impedir a injeção do token CSRF no formulário.
Erro Aparece Após uma Atualização do Servidor Mastodon
Após uma atualização, o servidor pode ter alterado o nome do cookie ou o método de geração do token. Limpe todos os cookies do domínio do Mastodon e reinicie o navegador. Se o erro persistir, entre em contato com o administrador da instância ou, para instâncias auto-hospedadas, revise o changelog do Mastodon em busca de alterações relacionadas ao CSRF.
| Item | Limpar Sessão do Navegador | Desativar Extensões | Correção no Proxy Reverso |
|---|---|---|---|
| Descrição | Exclui cookies desatualizados e arquivos em cache que causam incompatibilidade de token | Remove ferramentas de terceiros que bloqueiam ou alteram o cookie CSRF | Corrige configurações do Nginx ou Apache que removem o cookie CSRF |
| Melhor para | Todos os usuários, especialmente após reinicialização do servidor ou período de inatividade | Usuários com extensões de privacidade ou gerenciamento de cookies | Administradores de instâncias auto-hospedadas |
| Tempo para aplicar | 1-2 minutos | 2-5 minutos | 10-30 minutos |
| Requer | Apenas acesso ao navegador | Gerenciamento de extensões do navegador | Acesso SSH ao servidor e edição de arquivos de configuração |
O erro CSRF Token Mismatch no Mastodon é quase sempre um problema de sessão ou cookie. Comece limpando os cookies e o cache do navegador. Se isso não funcionar, desative as extensões do navegador e teste novamente. Para proprietários de instâncias auto-hospedadas, verifique se o proxy reverso não está removendo o cookie _csrf_token. Após aplicar a correção adequada, o formulário deve ser enviado sem erros. Como medida preventiva, considere adicionar sua instância do Mastodon à lista de exceções de cookies do navegador para evitar futuras incompatibilidades de token.