Foros del Web » Programación para mayores de 30 ;) » Java »

Credenciales DB

Estas en el tema de Credenciales DB en el foro de Java en Foros del Web. Buenos días! Una duda: ¿es correcto, desde el punto de vista de la seguridad, almacenar mis credenciales para la base de datos como parámetro de ...
  #1 (permalink)  
Antiguo 21/06/2010, 00:55
 
Fecha de Ingreso: enero-2005
Mensajes: 114
Antigüedad: 19 años, 10 meses
Puntos: 0
Credenciales DB

Buenos días!

Una duda: ¿es correcto, desde el punto de vista de la seguridad, almacenar mis credenciales para la base de datos como parámetro de Servlet en el archivo web.xml?

Un saludo, y gracias!
  #2 (permalink)  
Antiguo 21/06/2010, 08:41
Avatar de cptanalatriste  
Fecha de Ingreso: octubre-2008
Ubicación: Lima, Perú
Mensajes: 118
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Credenciales DB

No creo que sea prudente. Nosotros manejamos las conexiones a base de datos desde el Contenedor Web, y accedemos a los datasource a través de JNDI.

En otras palabras, la aplicación desplegada no sabe como conectarse a la BD: El que le brinda es el Contenedor Web.

Espero sea de ayuda,
__________________
Carlos G. Gavidia
Sun Certified Professional
IBM Certified Solution Designer
http://certified-es.blogspot.com/
  #3 (permalink)  
Antiguo 21/06/2010, 08:48
 
Fecha de Ingreso: enero-2005
Mensajes: 114
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Credenciales DB

Discúlpame, pero no lo he entendido, soy bastante novato. Serías tan amable de explicármelo un poco más detalladamente?
  #4 (permalink)  
Antiguo 21/06/2010, 13:10
Avatar de cptanalatriste  
Fecha de Ingreso: octubre-2008
Ubicación: Lima, Perú
Mensajes: 118
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Credenciales DB

Cita:
Iniciado por cptanalatriste Ver Mensaje
No creo que sea prudente. Nosotros manejamos las conexiones a base de datos desde el Contenedor Web, y accedemos a los datasource a través de JNDI.

En otras palabras, la aplicación desplegada no sabe como conectarse a la BD: El que le brinda la conexión es el Contenedor Web.

Espero sea de ayuda,
__________________
Carlos G. Gavidia
Sun Certified Professional
IBM Certified Solution Designer
http://certified-es.blogspot.com/
  #5 (permalink)  
Antiguo 22/06/2010, 01:57
 
Fecha de Ingreso: enero-2005
Mensajes: 114
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Credenciales DB

Disculpadme, no me he explicado bien. Mi duda viene con el uso del Java Naming. Lo de emplear datasource lo veo, se puede hacer algo por el estilo a esto:

BasicDataSource basicDataSource = new BasicDataSource();
// Ejemplo con base de datos MySQL
basicDataSource.setDriverClassName("com.mysql.jdbc .Driver");
basicDataSource.setUrl("jdbc:mysql://localhost:3306/nombre_bd");
basicDataSource.setUsername("usuario");
basicDataSource.setPassword("password");

// Pasamos el DataSource a las clases que lo necesiten.
claseQueHaceLasConsultas.setDataSource(basicDataSo urce);


El tema es que no domino JNDI, es decir, de dónde saco "usuario" y "password". Dónde están ubicados físicamente (en qué archivo) y cómo los llamo.

Gracias por vuestra ayuda.
  #6 (permalink)  
Antiguo 22/06/2010, 05:55
 
Fecha de Ingreso: enero-2005
Mensajes: 114
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Credenciales DB

Vale, he encontrado un tutorial bastante interesante acerca del tema.

Un único punto que no me queda claro: por lo visto, el objeto DataSource que contiene todos los datos de la conexión con la base de datos sale de Server.xml.

El tema es, ¿es más seguro tener los datos en Server.xml que en web.xml?
  #7 (permalink)  
Antiguo 24/06/2010, 21:24
Avatar de cptanalatriste  
Fecha de Ingreso: octubre-2008
Ubicación: Lima, Perú
Mensajes: 118
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Credenciales DB

De hecho que sí.

Tal vez en un contenedor básico no sea tan evidente, pero en servidores más avanzados (por ejemplo, IBM Was) las credenciales se almacenan encriptadas.

Además, si registras el datasource en el servidor éste puede ser usado por varias aplicaciones (que estén desplegadas en el contenedor) y no estar registrando estos datos en cada aplicación.

Saludos!
__________________
Carlos G. Gavidia
Sun Certified Professional
IBM Certified Solution Designer
http://certified-es.blogspot.com/
  #8 (permalink)  
Antiguo 25/06/2010, 02:32
 
Fecha de Ingreso: enero-2005
Mensajes: 114
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Credenciales DB

Gracias por tu respuesta, Alatriste.

Eso me plantea 2 dudas más:


* ¿Es el propio servidor quien encripta automáticamente con una clave propia, sin necesidad de controlarlo a nivel de aplicación?


* ¿Y si tu servicio de hosting no te permite manipular el server.xml?

Etiquetas: credenciales
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:46.