我已经安装了最新版本的 Brakeman gem 来帮助我提高 Rails 应用程序的安全性。
我在两台服务器上有几个 Rails 应用程序,一个用于开发,另一个用于生产。当我对我的应用程序运行 Brakeman 报告时,它们中的大多数都将 config/initializers/secret_token.rb 标记为具有以下高安全漏洞。
Session secret should not be included in version control near line 7
这是我几个月前运行旧版本的 Brakeman 以来第一次看到这个错误。
根据我目前的研究,Rails 在执行rails new appname时会自动生成秘密令牌。直到现在我才意识到这一点。显然 Rails 不保护这个文件,如果我决定将我的任何应用程序移动到 Github,那么在 Github 访问该应用程序的任何人都可以使用该信息。目前我没有上传到 GitHub,但我想了解如何从 config/initializers/secret_token.rb 移动 secure_token 以关闭我的应用程序中的安全漏洞。
我读过的一篇博客文章建议我将秘密令牌注入 ENV 变量。将语句从 config/initializers/secret_token.rb 移动到 config/environment.rb 会解决问题吗?如果是这样,我会将此任务添加到我在 Rails 开发中的任务列表中。
任何帮助,将不胜感激。