一尘不染

如何在不暴露密码的情况下连接到需要密码的数据库?

java

我正在创建一个应用程序,并且需要连接到数据库。数据库需要登录名/密码,因此应用程序可以执行选择和插入之类的操作。

在应用程序中,我需要使用登录名和密码连接到数据库,因此应用程序可以自由地在数据库上执行某些任务。
我的问题是:如何在不暴露密码的情况下存储和使用密码来连接数据库?

我不能简单地使用哈希或加密来存储密码,因为数据库必须能够识别密码(我认为大多数或所有数据库都必须以纯文本形式接收密码)。

注意:连接是由应用程序进行的。无需人工输入即可进行连接。

(编辑)有关该应用程序的更多信息:它是一个使用servlets /
jsp的Web应用程序。数据库位于应用程序的同一服务器上。该应用程序的用户是没有完全管理权限的默认用户,但是它可以插入/删除行,并且可以执行涉及表中查询和数据修改的大多数操作。


阅读 322

收藏
2020-12-03

共1个答案

一尘不染

完成此操作的通常方法是将用户名/密码外部化为在运行时读取的属性/配置文件(无论是否使用本机JDBC
/ JNDI / CDI / J2EE数据源/等)。

该文件由系统管理员通过操作系统的安全性保护。

与应用程序代码相比,操作系统具有更好的保护工具。

2020-12-03