Estou procurando uma forma de proteger meu banco contra acesso indevido. Utilizar criptografia para usuário e senha no banco de dados é normal. Até aí tudo bem. Mas a minha dúvida é a seguinte: em algum lugar do meu código fonte da aplicação (Java) estão expostos os dados de conexão com o meu banco de dados(host, usuario do banco, senha). Sendo assim, pode ser que alguem consiga pegar esse código(talvez por engenharia reversa) e descobrir os dados de conexão com o banco e a partir daí fazer um estrago.
Então, eu queria saber como esconder esses dados de conexão com o banco, protegendo ao máximo de possíveis intrusos. Alguem poderia me ajudar em algo relacionado a isso?
Não mantenha esse tipo de coisa no codigo, coloque em um arquivo de configuração externo, como properties ou XML.
B
bglauberPJ
Mas mesmo usando um arquivo externo com os dados, esse arquivo não estará vulnerável a um acesso indevido??
Eu estava pensando em algo da seguinte forma, nao sei se teria como fazer isso:
Criar um usuario do banco que tenha acesso apenas à tabela de USUARIOS. Dessa forma, eu permito fazer o login(autenticação do usuario junto sistema - não a autenticação do banco)
Depois de autenticado o usuário do sistema, estava pensando em fechar a conexao que estava aberta e abrir uma nova conexao com um outro usuario do banco diferente que tem acesso a todas as outras tabelas do banco. Esse usuario sim teria permissao para fazer qualquer coisa no banco.
Mas o problema que vejo é que quando retornar para a aplicação os dados do novo usuário para fazer a segunda conexao com o banco, ela poderá ser vista e então utilizada por uma pessoa com mas intenções. Talvez usar algum tipo de criptografia resolveria, mas nao tenho ideia.