我有一个war文件,其中一个类从Java调用MySQL DB,因此在源代码中具有纯文本形式的MySQL登录信息。显然,出于安全原因,我不希望这对外界可见。因此,问题是部署在 Tomcat 上的 war 文件中的源代码是否对外界可见?
问问题
105 次
3 回答
4
这不是问题,但不灵活。使用 JNDI 更有用。在 context.xml 中放置如下内容:
<Resource
name="jndi_name_for_datasource"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testOnReturn="true"
validationQuery="select 1 from dual"
timeBetweenEvictionRunsMillis="30000"
minIdle="1"
initialSize="1"
minEvictableIdleTimeMillis="30000"
username="solaris"
password="super"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:slife"
/>
并使用查找 JNDI 名称
于 2013-09-10T14:19:34.650 回答
2
不,它不会是可见的。前提是无法下载war-一旦下载了war-任何人都可以找到该类并对其进行反编译以查看密码。
更好的选择是配置 DataSoure - 这不在您的战争范围内。
于 2013-09-10T14:14:46.783 回答
1
但我认为这仍然是一个安全问题,如果其他人可以访问 tomcat 服务器。例如其他员工或管理员。
我建议您在代码中添加简单的加密/解密技术,以防止其他人找出密码。
于 2013-09-10T14:22:40.867 回答