弃用警告:您没有设置config.secret_key_base

Cal*_*leb 44 ruby-on-rails ruby-on-rails-4

运行我的规格时收到此警告.是否有生成secret_key_base的最佳实践,或者任何字符串是否足够(关于安全性问题)?

Agi*_*gis 96

您可以从3.x或以前的版本升级到Rails 4.

首先生成随机密钥值:

$ bundle exec rake secret
Run Code Online (Sandbox Code Playgroud)

然后取出该值并将其放入config/initializers/secret_token.rb:

YourApp::Application.config.secret_key_base = 'your-secret'
Run Code Online (Sandbox Code Playgroud)

替换YourApp为您的应用程序的名称.

这里解释其原因.

另请参阅http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml

  • 如果有人好奇,[`rake secret`](https://github.com/rails/rails/blob/d20f7b043a537b57ff4a7911f65de2fb7b7aea7d/railties/lib/rails/tasks/misc.rake#L1-L5)就是(目前)做`放置SecureRandom.hex(64)` (12认同)
  • 看看`config/secrets.yml`和http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml (2认同)

tam*_*use 6

从4.1开始,您需要使用该config/secrets.yml文件.这在http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml中讨论.

  • 实际上,在链接中,它说"如果你想使用新的secrets.yml约定存储你的应用程序的秘密......"我没有看到任何说你需要*的东西.:) (2认同)