2016-05-18 62 views
0

所以我部署一个导轨4.2的应用程序,实现我需要设置一个生产secret_key_base关键直接在secrets.yml中添加生产security_key_base密钥是否存在安全漏洞?

配置/ secrets.yml

# Do not keep production secrets in the repository, 
# instead read values from the environment. 
production: 
    secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

它想让我来设置一个名为SECRET_KEY_BASE的环境变量的关键。现在,如果我不在任何git repo上共享此文件,那么只需将secret_key_base直接设置在secrets.yml文件中,是否存在任何安全漏洞?一个人如何能够访问这个文件并获得密钥?

回答

2

由于攻击区域增加,直接添加的安全性较低。这意味着有更多的方法可以让用户从你的Rails服务器获取数据。

如果直接添加此项,有人需要能够读取您的rails服务器的文件系统。这可能是通过某种能够查看文件系统内容的目录遍历攻击。

如果您只将它们添加到ENV并以这种方式使用secrets.yml,它们将必须能够读取运行rails进程的用户的ENV。一般来说,这是根权限或另一个特权用户帐户,您授予访问spawn进程以向rails提供请求的权限。要做到这一点,需要他们完全接管用户进程,这通常更难。

+0

谢谢,这就是我想知道的 – Rob