我刚开始将所有数据库凭据存储在WAR的context.xml
文件中,并通过JNDI加载它们。这样,我的应用程序可以在多个区域重用相同的凭据,我可以使用JNDI来检索它们(而不是在我的代码库中遍布凭据)。
但是现在我在想:如果攻击者进入我的Tomcat服务器安装的机器怎么办?他们可以直接进入我的webapps / MyApp爆炸目录,找到&打开context.xml
目录,瞧 - 他们现在可以访问我的数据库!
那么在这里引入安全性的下一步是什么?有没有办法将我的所有凭据保存在某个密钥库中,并从context.xml
内引用其标签?我仍然想使用context.xml
,以便我的JDBC代码可以通过JNDI访问凭据。如果是这样,context.xml
如何以安全的方式访问它们?在这里处理安全的正常方法是什么?提前谢谢!
答案 0 :(得分:0)
我建议构建一个加密系统,在将数据发送到xml文件之前加密数据,然后在搜索之前搜索用户名或加密名称的任何内容。这种方式即使一个人设法进入文件,也无法在没有用于加密的算法的情况下阅读它并且确切地知道他们想要找到什么。从理论上讲,他们可以蛮力,但他们仍然需要知道算法才能做到这一点。处理加密的一种简单方法是学习如何在http://www.bouncycastle.org/使用充气城堡库。他们有一个非常容易使用/学习的系统。