Contexto
Em src/spsvalidator/app.py, a aplicação define um secret_key fixo no código:
app.secret_key = "spsvalidator-local-secret"
Problema
- O valor está hardcoded no repositório, o que pode ser sinalizado por ferramentas de segurança (ex.:
detect-secrets).
- Não segue a boa prática de manter segredos fora do código-fonte.
- Se no futuro a aplicação passar a usar
session, flash() ou proteção CSRF, uma chave fixa e pública representa risco de segurança.
Situação atual
Hoje o app não utiliza recursos que dependem de secret_key (sem session, sem flash, sem CSRF). O servidor roda localmente em 127.0.0.1, então o risco imediato é baixo — mas a linha permanece desnecessária ou frágil para evoluções futuras.
Proposta
Escolher uma das abordagens:
- Remover
app.secret_key enquanto nenhum recurso do Flask depender de sessão assinada; ou
- Externalizar via variável de ambiente (ex.:
SPSVALIDATOR_SECRET_KEY), com fallback seguro apenas para desenvolvimento local.
Exemplo (opção 2):
import os
app.secret_key = os.environ.get(
"SPSVALIDATOR_SECRET_KEY",
"dev-only-change-me", # ou gerar aleatoriamente em runtime no modo dev
)
Critérios de aceite
Arquivo afetado
src/spsvalidator/app.py (linha ~16)
Contexto
Em
src/spsvalidator/app.py, a aplicação define umsecret_keyfixo no código:Problema
detect-secrets).session,flash()ou proteção CSRF, uma chave fixa e pública representa risco de segurança.Situação atual
Hoje o app não utiliza recursos que dependem de
secret_key(semsession, semflash, sem CSRF). O servidor roda localmente em127.0.0.1, então o risco imediato é baixo — mas a linha permanece desnecessária ou frágil para evoluções futuras.Proposta
Escolher uma das abordagens:
app.secret_keyenquanto nenhum recurso do Flask depender de sessão assinada; ouSPSVALIDATOR_SECRET_KEY), com fallback seguro apenas para desenvolvimento local.Exemplo (opção 2):
Critérios de aceite
detect-secretsnão aponta falso positivo não auditado para essa linha (se aplicável)Arquivo afetado
src/spsvalidator/app.py(linha ~16)