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,59 @@
|
||||
/**
|
||||
* Script para definir/alterar a senha web de um usuário.
|
||||
* Uso: node scripts/definir-senha-web.js <LOGIN> <SENHA> [alias]
|
||||
*
|
||||
* @param {string} LOGIN - Login do usuário
|
||||
* @param {string} SENHA - Nova senha (máx. 30 caracteres)
|
||||
* @param {string} [alias=lajedo] - Alias do banco de dados
|
||||
*/
|
||||
const db = require('../src/database');
|
||||
|
||||
async function main() {
|
||||
const login = process.argv[2];
|
||||
const senha = process.argv[3];
|
||||
const alias = process.argv[4] || 'lajedo';
|
||||
|
||||
if (!login || !senha) {
|
||||
console.log('Uso: node scripts/definir-senha-web.js <LOGIN> <SENHA> [alias]');
|
||||
console.log('Ex: node scripts/definir-senha-web.js SUPORTE 123456 lajedo');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (senha.length > 30) {
|
||||
console.log('❌ A senha deve ter no máximo 30 caracteres.');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Verifica se o usuário existe
|
||||
const users = await db.query(alias,
|
||||
'SELECT USU_CODIGO_ID, USU_NOME, USU_LOGIN, USU_ACESSO_WEB FROM USUARIOS WHERE USU_LOGIN = ?',
|
||||
[login]
|
||||
);
|
||||
|
||||
if (users.length === 0) {
|
||||
console.log(`❌ Usuário "${login}" não encontrado no alias "${alias}".`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const user = users[0];
|
||||
|
||||
// Atualiza a senha web
|
||||
await db.execute(alias,
|
||||
'UPDATE USUARIOS SET USU_SENHA_WEB = ? WHERE USU_CODIGO_ID = ?',
|
||||
[senha, user.USU_CODIGO_ID]
|
||||
);
|
||||
|
||||
console.log(`✅ Senha web do usuário "${login}" definida com sucesso! (alias: ${alias})`);
|
||||
|
||||
if (user.USU_ACESSO_WEB !== 1) {
|
||||
console.log('⚠️ O usuário ainda não tem acesso WEB habilitado.');
|
||||
console.log(` Execute: node scripts/habilitar-acesso-web.js ${login} ${alias}`);
|
||||
}
|
||||
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
main().catch(err => {
|
||||
console.error('Erro:', err.message);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user