我在Ruby中编写了一个帮助脚本,通过一些服务器处理我的文件同步。它仅在我的Intranet中使用,并且通过SSH密钥进行身份验证。但现在我想在不能使用SSH密钥的地方使用它,我想将密码存储在配置文件中。
我知道,有一些像bcrypt或OpenSSL这样的加密库,但我有一个问题:
所以每个人都可以访问我的用户到我的计算机(这将是我想要扩展的第一个屏障)并查看内存(存储我的密码短语)可以解密我的密码文件。如何处理与安全相关的应用程序?
伊迪丝作为对DevDude的回复说(但在这里,因为我想在我的问题中保留我的规范): 但是这个配置文件将是纯文本而不是加密的。当我加密这个文件时,我认为还有两个问题:所以最大的问题是:是否可以从内存中读取纯文本变量?据我所知,它可能在C和一个很大的安全问题。
答案 0 :(得分:1)
您要查找的是使用带密码/ API密钥的YAML文件。并且永远不要将此文件检入您的仓库。
然后你可以在初始化器上引用这个文件,也许可以将密码设为全局变量或x,使用configatron等。
这基本上是生产应用程序的工作方式,它们从存储在服务器本身的YAML文件中读取其重要设置。
这就是我使用的:
@c = configatron
# Per environment settings
app_settings = YAML.load_file('config/secret_stuff.yml')
@c.password = app_settings['super_secret_pwd']
不要使用ENVIRONMENT变量,因为它们存在各种安全问题。他们是反模式。