java - 如何保护 context.xml 中的敏感信息?

标签 java security tomcat jndi context.xml

我刚开始将我所有的数据库凭据存储在我的 WAR 的 context.xml 文件中,并通过 JNDI 加载它们。这样,我的应用程序可以在多个区域重用相同的凭据,并且我可以使用 JNDI 检索它们(而不是将凭据散布在我的代码库中)。

但现在我在想:如果攻击者进入安装了我的 Tomcat 服务器的机器怎么办?他们可以直接进入我的 webapps/MyApp 分解目录,找到并打开 context.xml 目录,然后瞧 - 他们现在可以访问我的数据库了!

那么在这里引入安全性的下一步是什么?有没有办法将我的所有凭据保存在某个 keystore 中,并从 context.xml 中引用它们的标签?我仍然想使用 context.xml 以便我的 JDBC 代码可以通过 JNDI 访问凭据。如果是这样,context.xml 如何以安全的方式访问它们?这里处理安全的正常方法是什么?提前致谢!

最佳答案

我建议构建一个加密系统,在将数据发送到 xml 文件之前对数据进行加密,而不是在搜索之前搜索用户名或任何加密名称。这样即使一个人设法进入文件,如果没有用于加密的算法并且确切地知道他们想要找到什么,就无法读取它。理论上他们可以暴力破解,但他们仍然需要知道算法才能做到这一点。处理加密的一种简单方法是在 http://www.bouncycastle.org/ 上学习如何使用充气城堡库。 .他们有一个非常易于使用/学习的系统。

关于java - 如何保护 context.xml 中的敏感信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18089559/

相关文章:

c# - 在 Ant 中使用 csc 任务构建时出现问题

java - Akka Actor 中的 Httpclient 死锁

java - Spring Boot + Ionic 应用程序身份验证

.net - 进程内仅 WCF 命名管道通信?

javascript - 功能策略 : Skipping unsupported feature name “picture-in-picture” / “autoplay” / “encrypted-media”

json - java.io.FileNotFoundException : WebContent\WEB-INF\classes\nmdp. json(系统找不到指定的路径)

Java OutOfMemory 仅在 Linux 环境下

java - 设置正确的类路径来编译和运行 Java 包?

java - 为什么Tomcat启动后就关机了?

java - 获取在 VMware 上运行的 Cisco UCS 模拟器的 IP 地址