【发布时间】:2020-06-27 08:17:53
【问题描述】:
既然我们拥有每个环境的凭据,那么在 Rails 6 上定义 secret_key_base 的正确方法是什么?
我的环境有变量 SECRET_KEY_BASE 但 Rails 没有选择它。我尝试在config\credentials\production.yml.enc 中定义secret_key_base,但它对Rails.application.credentials.secret_key_base 没有影响
我知道config/secrets.yml与
staging:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
有效,但是,这是 Rails 6 的方式吗?
【问题讨论】:
-
使用 ENV 变量首先会破坏使用加密密钥的所有安全优势。加密的秘密不会像 secrets.yml 那样通过 ERB 运行。 “Rails 6 方式”是首先不使用 ENV var,因为我们知道它们很容易被破坏。
标签: ruby-on-rails ruby-on-rails-6