使用secret_key_base作为paperclip hash_secret

时间:2014-12-20 10:54:52

标签: ruby-on-rails ruby-on-rails-4

Rails 4在config/secrets.yml常量secret_key_base中声明"验证已签名cookie的完整性"。这些是128个字符(0..f)长。

Paperclip(文件管理)可以使用:hash_secret选项对可访问文件名进行编码。 https://github.com/thoughtbot/paperclip/wiki/Hashing

使用secret_key_base作为Paperclip哈希是否有好主意?这似乎是一个很好的解决方案,因为它足够复杂,不在项目提交中,并且每个环境都有一个。

secrets.yml中声明2个变量将如下所示:

development:
  secret_key_base: 73512
  secret_key_asset: 123456

test:
  secret_key_base: 3dde2
  secret_key_asset: 789456

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
  secret_key_asset: <%= ENV["SECRET_KEY_ASSET"] %>

......对我来说似乎没什么问题。

此致

1 个答案:

答案 0 :(得分:0)

根据Paperclip Wiki的摘录,看来secret_key_base很好。

# config/initializers/paperclip_defaults.rb

Paperclip::Attachment.default_options.update({
  url: "/system/:class/:attachment/:id_partition/:style/:hash.:extension",
  hash_secret: Rails.application.secrets.secret_key_base
})

您可以为Paperclip使用不同的密钥,但对于大多数项目来说可能没有必要。