Ruby on Rails 3.2.13 - Brakeman - Session secret不应该包含在版本控制中



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

我在两台服务器上有几个Rails应用程序,一台用于开发,另一台用于生产。当我在我的应用程序上运行Brakeman报告时,大多数都标记了config/initializers/secret_token。

Session secret should not be included in version control near line 7

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

根据我目前的研究,当 Rails new appname执行时,Rails会自动生成秘密令牌。直到现在我才意识到。显然,Rails不保护这个文件,如果我决定将我的任何应用程序移动到Github的信息将提供给任何人在Github访问应用程序。此时,我没有上传到GitHub,但我想了解如何从配置/初始化器/secret_token移动secure_token的信息。为了关闭我的应用程序中的安全漏洞。

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

当我将秘密信息放入ENV变量时,Brakeman中的特定信息为我沉默了,正如您所提到的。就我个人而言,我喜欢使用Figaro宝石,但我认为dotenv也很受欢迎。

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

  • Code Climate博客条目:Rails不安全的默认代码
  • StackOverflow线程:应该从Ruby on Rails的公共源代码控制中删除什么?

我不确定将会话秘密移动到另一个文件中会有什么不同。从本质上讲,秘密令牌应该像密码一样被对待。

这篇来自Phusion的博客文章探讨了在部署时提供会话密钥的几种不同选项。

相关内容

  • 没有找到相关文章

最新更新