2.1密码加密



我有一个与数据库通信的应用程序,我必须从application.conf加载数据库连接的凭据。我想要我的凭证,至少是在application.conf文件中加密的密码。我无法找到一些关于如何将其与Play结合在一起的优秀文档。

我的意思是我可以使用任何加密库,加密密码,将其存储到application.conf并在连接到数据库时解密。我想知道的是关于这如何适合Play框架的一些建议。有一些内置插件或我可以用来加密的东西吗?

您不需要对自己系统中的任何内容进行加密。只要确保你的服务器是安全的。

由于您需要让您的应用程序访问密码,因此可以访问您的系统的攻击者无论如何都可以获得您的密码。

但是永远不要检查你的密码到git(或subversion或其他)!

你应该这样做:

  1. 将这行添加到您的application.conf:

    include "secret.conf"
    
  2. conf -文件夹中创建secret.conf,并将所有凭据保存在此文件中。

  3. secret.conf添加到您的.gitignore中,这样它就不会进入您的Git。
  4. 手动添加并更新服务器上的secret.conf -文件

如果你是在linux系统上,控制对secret.conf文件的读访问也是明智的,就像@Roman说的:

确保只有运行play的用户才有权限读取该文件

实际上加密您的db凭据是没有用的。这样,您必须在某个地方存储一个密钥来解密凭证,这将导致完全相同的问题。相反,您可以在生产服务器上存储application-prod.conf,以便覆盖application.conf属性。确保只有运行play的用户才有权限读取该文件。

include "application"
db.default.password="yoursecret"

然后运行应用程序:

/path/to/yourapp/bin/yourapp -Dconfig.file=/path/to/application-prod.conf

同样的方法用于保护应用程序的秘密。

相关内容

  • 没有找到相关文章

最新更新