Ruby on Rails 3.2.13 - Brakeman - 会话秘密不应包含在版本控制中

Pam*_*orp 9 security ruby-on-rails brakeman

我已经安装了最新版本的Brakeman gem来帮助我使用Rails应用程序安全性.

我在两台服务器上有几个Rails应用程序,一个用于开发,另一个用于生产.当我在我的应用程序上运行Brakeman报告时,大多数都标记了config/initializers/secret_token.rb,其中存在以下高安全漏洞.

Session secret should not be included in version control near line 7
Run Code Online (Sandbox Code Playgroud)

这是我几个月前运行旧版Brakeman以来我第一次看到这个错误.

根据我迄今为止所研究的内容,当执行rails new appname时,Rails会自动生成秘密令牌.直到现在我才意识到这一点.显然Rails不保护这个文件,如果我决定将我的任何应用程序移动到Github,那么Github访问该应用程序的任何人都可以获得这些信息.这时我没有上传到GitHub,但我想知道如何从config/initializers/secret_token.rb移动secure_token以关闭我的应用程序中的安全漏洞.

我读过的一篇博文建议我将秘密令牌注入ENV变量.将语句从config/initializers/secret_token.rb移动到config/environment.rb会解决问题吗?如果是这样,我将把这个任务添加到我在Rails开发中的任务列表中.

任何帮助,将不胜感激.

Pau*_*nti 12

ENV正如你所提到的那样,当我把秘密信息输入变量时,Brakeman中的那个特别的信息对我来说是沉默的.就个人而言,我喜欢使用费加罗宝石,但我认为dotenv也很受欢迎.

您可能对此感兴趣的其他一些资源包括:

  • 如果environment.rb存储在源代码管理中,那么它不会比secret_token.rb更安全. (5认同)