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!
| |||
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! |
| ||||
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/ |
| ||||
Respuesta: Credenciales DB Cita:
Iniciado por cptanalatriste 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/ |
| |||
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. |
| |||
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? |
| ||||
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/ |
| |||
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: |