我的工作区有一个使用数据库的应用程序。目前,它使用用户名密码进行身份验证(尽管我们可以使用受信任的 IP 连接)。我们不想使用信任,因为我们将对应用程序和数据库所在的特定计算机的 IP 进行移动。
目前,由于我们在应用程序中使用配置文件中设置的用户名/密码,因此除了我的老板(系统管理员)和他的六个下属(我是负责人)之外,开发人员也知道密码,因为我们中的任何一个人都会轮流担任管理员,维护和部署应用程序。因此,我们所有人都有责任确保密码安全。
我做了什么 最近我们开始更频繁地更改密码,但现在我只希望自己知道这个密码。我是唯一一个应该按照老板的指示直接在数据库上运行查询的人。甚至我的老板也没有必要知道它(也许在我不在场的情况下并且有记录)。我想到以下做法:
- 在服务器上创建一个仅应用程序可读的文本文件。
- 让开发人员编写应用程序来引用此文件来获取纯文本密码。
- 应用程序使用它来登录。
我认为,如果开发人员在应用程序中存储了为他们执行此操作的代码,他们仍然能够泄露密码(并不是说他们险恶,我们只是想集体简化集体风险)
问题 有没有更好的方法来完善这种方法,除此之外还有其他方法可以使用吗?
平台:Linux(Ubuntu 服务器)、PostgreSQL、Java
答案1
旧的 unix/linux 方式是:
vi /etc/my_app.conf
database_ip=192.168.123.123
database_instance=db1
database_user=my_app
database_password=secret_in_plaintext
这并不能立即解决您的问题,但是......将来您可以将完全相同的应用程序二进制文件(war / jar)部署到不同的应用服务器(生产、预生产、测试、开发)。这些都可以有不同的数据库(生产、预生产、测试、开发)。这样,开发人员最终将根本不需要访问生产。