Hibernate.properties senha fica visível

6 respostas
thiagofesta

Boa tarde,

Estou estudando sobre Hibernate 3 com annotations, já consegui fazer funcionar, porém notei que o arquivos de configuração (hibernate.properties) fica visível para qualquer pessoa, dessa maneira uma pessoa que tenha algum conhecimento de Java consegue descobrir a senha do banco de dados.

Explicando melhor. Por exemplo, usando o banco de dados MySQL, conecto com o usuário root e senha root, só que ninguem pode saber que a senha é root, preciso de uma forma de deixar encriptografado, para ninguem descompactar meu jar e ver o hibernate.properties lá.

Outra pergunta, tem como deixar fora do classpath? Eu tenho um config.properties que uso em meu programa, eu poderia deixar estas informações ai, é possivel?

Obrigado!

6 Respostas

ignacio83

O ideal seria a conexão não ficar dentro de sua aplicação… O correto é você configurar o pool no servidor de aplicação, e obte-lo através de JNDI.

Esse arquivo estando no servidor de aplicação fica bem mais seguro. Agora não sei se é possível criptografar esse arquivo no servidor de aplicação.

Ex de configuração para obtenção do pool de dentro da aplicação:

hibernate.connection.datasource = java:/comp/env/jdbc/test

Utilizando a propriedade acima vc não precisa descrever nenhuma das propriedades abaixo:

hibernate.connection.password
hibernate.connection.username
hibernate.jndi.url

Agora para configurar o pool no servidor depende do servidor que vc está utilizando.

Espero ter ajudado.

mgarcia

Para utilizar criptografia nos arquivos do hibernate use jasypt…

http://www.jasypt.org/hibernate3.html

abç

serjaumfantin

Depois de feito o deploy da sua aplicação seus arquivos de configuração ficarão (geralmente) na pasta WEB-INF/classes. Desta forma ninguém poderá acessar por URL o conteúdo da pasta WEB-INF/.

Abraços…

thiagofesta

serjaumfantin:
Depois de feito o deploy da sua aplicação seus arquivos de configuração ficarão (geralmente) na pasta WEB-INF/classes. Desta forma ninguém poderá acessar por URL o conteúdo da pasta WEB-INF/.

Abraços…


Estou usando pra desktop, ai fica no .jar como disse anteriormente.
Mesmo assim obrigado

mgarcia:
Para utilizar criptografia nos arquivos do hibernate use jasypt…

http://www.jasypt.org/hibernate3.html

abç


Vou dar uma olhada sobre isso :slight_smile:
Muito obrigado!

thiagofesta

mgarcia:
Para utilizar criptografia nos arquivos do hibernate use jasypt…

http://www.jasypt.org/hibernate3.html

abç

Cara, podia me dar uma dica? não consegui fazer.
Estou olhando aqui: http://www.jasypt.org/encrypting-configuration.html

thiagofesta

Ainda não consegui!
Alguem me da uma luz?

Obrigado!

Criado 30 de julho de 2009
Ultima resposta 1 de ago. de 2009
Respostas 6
Participantes 4