Pular para o conteúdo
Todos os conceitos

Erro detalhado

Em produção, a página de erro do modo de depuração entrega caminho, versão e até segredos.

Quando o código quebra, o framework pode responder de dois jeitos. Em desenvolvimento, com o modo de depuração ligado (DEBUG=True), ele mostra uma página rica: a pilha de chamadas (o traceback), o caminho dos arquivos no disco, a versão do framework e, muitas vezes, um despejo das variáveis locais da função que falhou. Isso é ótimo para o programador corrigir o bug.

Em produção, essa mesma página vira um presente para o atacante. O caminho (/srv/pampa/app/...) revela a estrutura do servidor; a versão aponta vulnerabilidades conhecidas daquela versão; e o despejo de variáveis pode conter uma senha de banco ou uma chave secreta que, naquele instante, estava em memória.

Página de erro, DEBUG ligado Traceback: File "/srv/pampa/app/dashboard.py", line 88 caminho no disco Potreiro 2.4.1 versão do framework variáveis locais DB_DSN = postgres://... SECRET_KEY = tocaia{...} o segredo vaza aqui
A página de erro em modo DEBUG mostra o traceback, o caminho e as variáveis locais; entre elas vaza SECRET_KEY, que não devia aparecer nunca.

A defesa é desligar o modo de depuração em produção (DEBUG=False), mostrar ao usuário uma página de erro genérica (um 500 limpo, sem detalhes) e mandar o traceback só para o log interno. Esconder o software e a versão no cabeçalho Server (no nginx, server_tokens off) fecha o reconhecimento pelo mesmo motivo.

Aparece nestes desafios