Migração para PostgreSQL multi-driver + correções de segurança
- Camada de banco unificada (src/database.js): drivers Postgres/Firebird, tradutor de SQL, suporte a schema e pool de conexões - Conexões: novo_local (Postgres externo) e firebird_local (legado) - Tela de rotas da API redesenhada (auth, params, exemplos de body) - Correções de segurança (críticos/altos/médios/baixos): XSS no chat, escalonamento de privilégio, mídia autenticada, SQL restrito a gerente, JWT sem fallback + issuer, IDOR em conversas, CORS por allowlist, rate-limit no login, limites de corpo por rota - Deploy alinhado: install.sh grava .env com PG_*, migracoes.js driver-aware Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Configuração de autenticação JWT
|
||||
*/
|
||||
const secret = process.env.JWT_SECRET;
|
||||
|
||||
// Segurança: sem segredo padrão. Se a variável não estiver definida, o boot
|
||||
// falha de forma explícita — evita assinar tokens com um segredo previsível.
|
||||
if (!secret) {
|
||||
throw new Error(
|
||||
'JWT_SECRET não definido. Configure JWT_SECRET no .env antes de iniciar o servidor ' +
|
||||
'(não há segredo padrão por motivos de segurança).'
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
secret: secret,
|
||||
expiresIn: process.env.JWT_EXPIRES_IN || '8h',
|
||||
issuer: 'chatc2-api',
|
||||
};
|
||||
Reference in New Issue
Block a user