我有一个普通的Java应用程序,应该连接到数据库.我不想在属性文件中存储数据库连接URL和用户名/密码,也不想在应用程序中对其进行硬编码.解决这个问题的常用方法是什么?Java应用程序如何在不泄露用户名/密码的情况下连接到数据库?
我是.NET开发者,但我遇到了完全相同的情况.
去年我在一家必须符合PCI标准的公司工作才能存储信用卡数据,所以安全性是一个大问题.URL /登录数据必须存在于某处.我见过的最常见的保护方法是加密.我不特别了解Java,但.NET在核心框架中有几个加密命名空间.我们使用它们来加密数据库登录.
您仍然存在潜在的安全漏洞,这是用于加密/解密数据的加密密钥.我们在这里使用了PCI"补偿控制"方法.对密钥的访问仅限于"密钥管理"角色.我们还跟踪密钥本身的访问权限,以便记录所有用户启动和系统启动的访问.没有一个用户可以访问这些日志,因此单个用户可能无法覆盖轨道.这些重叠的安全方法实际上创造了一种情况,即需要多个管理员之间的协调阴谋才能使数据处于危险之中.