Correção de vazamento de dados nas páginas de erro e nos logs
Três problemas de exposição, todos com o mesmo efeito: dado interno saindo para quem não deveria ver. 1. Painel de debug do Rails na tela do usuário O servidor sobe com RAILS_ENV=development (docker-compose.yml), e development tinha `consider_all_requests_local = true`. A página "Action Controller: Exception caught" mostra parâmetros, SESSÃO (session_id, _csrf_token, id do usuário logado), cookies, IP do cliente, caminho do servidor e o trace inteiro — para qualquer pessoa que provocasse um erro. Agora o detalhe depende de ERROS_DETALHADOS=true, que só é ligado na máquina de desenvolvimento. 2. Senha e PIN em texto puro no log Não existia filter_parameter_logging.rb neste projeto: toda senha do login, PIN de motorista e token do WhatsApp iam para log/ em texto puro — e log vai junto em backup e em suporte. Era o pior dos três, porque é permanente e não aparece na tela de ninguém. 3. Páginas de erro do usuário final Sem public/500.html, desligar o painel deixaria tela em branco. Criadas 500/404/422 em português, sem CSS externo (precisam funcionar com a aplicação fora do ar). Também sai do versionamento a pasta Erros/, com 16 páginas de debug salvas do navegador. Não há cookie de sessão assinado nelas — ninguém entra no sistema com o que está ali — mas há session_id, token CSRF, id de usuário e IPs, que não têm por que estar no repositório. Correção estrutural pendente: subir o servidor com RAILS_ENV=production (production.rb já tem consider_all_requests_local=false e force_ssl=true). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -87,3 +87,9 @@ WHATSAPP_TOKEN=troque_por_uma_string_aleatoria_longa
|
||||
# do serviço no docker-compose.yml).
|
||||
# (o nome antigo `BAILEYS_URL` ainda é aceito, para .env já em produção)
|
||||
WHATSAPP_URL=http://whatsapp:3001
|
||||
|
||||
# ── Erros na tela ────────────────────────────────────────────────────────
|
||||
# Mostra a página de debug do Rails (parâmetros, SESSÃO, cookies, IP, trace).
|
||||
# Deixe SEMPRE vazia/false em qualquer servidor: esse painel vai para a tela de
|
||||
# quem provocou o erro. Ligue só na sua máquina, quando estiver depurando.
|
||||
ERROS_DETALHADOS=false
|
||||
|
||||
Reference in New Issue
Block a user