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,55 @@
|
||||
/**
|
||||
* Lista todos os usuários com seus respectivos USU_TOKEN.
|
||||
* Uso: node scripts/listar-tokens.js [LOGIN] [alias]
|
||||
*
|
||||
* @param {string} [LOGIN] - Filtrar por login (opcional)
|
||||
* @param {string} [alias=lajedo] - Alias do banco de dados
|
||||
*/
|
||||
const db = require('../src/database');
|
||||
|
||||
async function main() {
|
||||
const filtro = process.argv[2];
|
||||
const alias = process.argv[3] || 'lajedo';
|
||||
|
||||
const sql = filtro
|
||||
? `SELECT USU_CODIGO_ID, USU_NOME, USU_LOGIN, USU_STATUS,
|
||||
USU_ACESSO_WEB, USU_TOKEN
|
||||
FROM USUARIOS WHERE USU_LOGIN = ?`
|
||||
: `SELECT USU_CODIGO_ID, USU_NOME, USU_LOGIN, USU_STATUS,
|
||||
USU_ACESSO_WEB, USU_TOKEN
|
||||
FROM USUARIOS`;
|
||||
|
||||
const users = await db.query(alias, sql, filtro ? [filtro] : []);
|
||||
|
||||
if (users.length === 0) {
|
||||
console.log(`Nenhum usuário encontrado no alias "${alias}".`);
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
console.log('='.repeat(80));
|
||||
console.log(` USUÁRIOS E TOKENS (alias: ${alias})`);
|
||||
console.log('='.repeat(80));
|
||||
console.log('');
|
||||
|
||||
users.forEach((u, i) => {
|
||||
const status = u.USU_STATUS?.trim() === 'A' ? '✅' : '❌';
|
||||
const web = u.USU_ACESSO_WEB === 1 ? '✅' : '❌';
|
||||
const token = u.USU_TOKEN?.trim();
|
||||
|
||||
console.log(`${i + 1}. ${u.USU_NOME.trim()} (${u.USU_LOGIN.trim()})`);
|
||||
console.log(` ID: ${u.USU_CODIGO_ID} | Status: ${status} | Acesso Web: ${web}`);
|
||||
console.log(` USU_TOKEN: ${token || '(vazio)'}`);
|
||||
console.log('');
|
||||
});
|
||||
|
||||
console.log('='.repeat(80));
|
||||
console.log(`Total: ${users.length} usuário(s)`);
|
||||
console.log('='.repeat(80));
|
||||
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
main().catch(err => {
|
||||
console.error('Erro:', err.message);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user