我已经安装了最新版本的Brakeman gem来帮助我使用Rails应用程序的安全性.
我有两个服务器上有几个Rails应用程序,一个用于开发,另一个用于生产.当我运行Brakeman关于我的应用程序的报告时,大多数人将配置/初始化程序/ secret_token.rb标记为具有以下高安全性漏洞.
Session secret should not be included in version control near line 7
这是我第一次看到这个错误,因为我在几个月前跑了一个旧版本的Brakeman.
从目前的研究到目前为止,当rails新的appname被执行时,Rails会自动生成秘密令牌.到目前为止,我还没有意识到这一点.显然,Rails不保护这个文件,如果我决定将我的任何应用程序移动到Github,那么Github访问应用程序的任何人都可以使用这些信息.在这个时候我没有上传到GitHub,但是我想知道如何从config / initializers / secret_token.rb移动secure_token,以关闭我的应用程序中的安全漏洞.
我阅读的一篇博客文章建议我将秘密标记注入到ENV变量中.将语句从config / initializers / secret_token.rb移动到config / environment.rb解决问题?如果是这样,我将把这个任务添加到我的Rails开发任务列表中.
任何帮助将不胜感激.
解决方法
正如你所说,当我将秘密信息放入ENV变量时,Brakeman的这个消息对我来说是沉默的.就个人而言,我喜欢使用
Figaro宝石,但我认为
dotenv也是受欢迎的.
您可能会感兴趣的其他一些资源有:
代码气候博客:Rails Insecure Defaults代码气候博客
> StackOverflow线程:What should be removed from public source control in Ruby on Rails?