Ayuda con contraseñas en texto plano
Estoy certificando una aplicación y uno de los errores que recibi es el de
Password Management: Password in Configuration File
esto quiere decir que tengo contraseñas en texto plano,,,
y se refiere a esta parte de codigo de IBATIS
username = USRPORTCTC
password = *******
password = *******
y esto esta en un archivo .properties
se puede almacenar de otra forma ??
si lo encripto como lo desencriptaria el servidor ??
estaba pensando en meter la configuracion en un jar,, esto funcionaria ???
o tambien me lo detectaria el Fortify Static Code Analyzer??
Agradezco su ayuda
- ramiro.rosales.z's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
El archivo de configuración en la maquina del servidor
Pues leyendo este post viejo http://www.javamexico.org/foros/comunidad/%C2%BFcomo_encriptar_el_usuario_y_contrasena_de_base_de_datos_de_aplicacion_java_para_esc
entendi que mientras la contraseña este en la aplicación, nunca estara segura,, asi que se me ocurre, ponerla en la maquina
pero que es mas recomendable
ponerla en la raiz ??
ejemplo
C:/
o ponerla en una ruta mas cercana ??
por ejemplo dentro de una carpeta del mismo JBOSS ???
no se se me ocurre la carpeta boss-4.0.5.GA\server\nombreDeMiInstacia\conf\props
yo creo que es mejor dentro de la instancia de JBOSS
o ustedes que opinan ??
JNDI Resource
Exponer un datasource como un recurso JNDI puede ayudarte muchisimo. La aplicación ya no debe de preocuparse por almacenar esa información de la conexión pues el Servidor de Aplicaciones es quien lo administra, en el defines usuario password y demas, en tu app sólo debes preocuparte por hacer un lookup del datasource.
JNDI,, le diste al clavo
java.daba.doo,,,, acabo de hacer lo de JNDI y ahora la configuracion esta en el servidor,, era exactamente ese tipo de guía la que necesitaba,, gracias,, me acabas de ahorrar un fin de semana de preocupaciones...
ahora asi quedo mi XML
<dataSource type="JNDI">
<property name="DataSource" value="java:comp/env/jdbc/CTCDS"/>
</dataSource>
</transactionManager>
y en el servidor asi
<jndi-name>jdbc/CTCDS</jndi-name>
<connection-url>jdbc:oracle:thin:@10.51.***.***:1521:XE</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>***CTC</user-name>
<password>****CTC11</password>
<new-connection-sql>select sysdate from dual</new-connection-sql>
<min-pool-size>5</min-pool-size>
<max-pool-size>30</max-pool-size>
<blocking-timeout-millis>3000000</blocking-timeout-millis>
<idle-timeout-minutes>3</idle-timeout-minutes>
</local-tx-datasource>