没有提供给Rack :: Session :: Cookie警告的秘密选项?
我运行Rails 3.2.3,Fedora 17下的Ruby 1.9。我得到这个警告,当我运行rails s
,我该如何解决?
安全警告:没有提供给Rack :: Session :: Cookie的秘密选项。 这构成安全威胁。 强烈build议您提供一个秘密,以防止从制作的cookie中获得可能的漏洞利用。 这在Rack的未来版本中将不被支持,未来的版本甚至会使您现有的用户cookies失效。
这是一个Rails错误,因为这个子类违反了超类API合同。
Rails用户可以安全的忽略这个警告。
( https://github.com/rack/rack/issues/485#issuecomment-11956708 ,强调加)
关于rails错误讨论的确认: https : //github.com/rails/rails/issues/7372#issuecomment-11981397
根据tehgeekmeisters的回答阅读讨论,这个警告正在popup,因为Rails正在以不同于预期的方式使用Rack cookies。 现在应该可以忽略这个警告,直到就如何处理这个问题和解决问题达成最终协议为止。
这个问题已经在刚刚发布的Rails 3.2.11中解决了。
日志: https : //github.com/rails/rails/commits/v3.2.11
提交: https : //github.com/rails/rails/commit/95fe9ef945a35f56fa1c3ef356aec4a3b868937c
rails 3.2.9 – ruby 1.9.3p125(2012-02-16修订版34643)[i686-linux]
大家好,以下已经为我工作了,可能适合你。
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.2.9/lib/action_dispatch/middleware/session/abstract_store.rb
module Compatibility def initialize(app, options = {}) options[:key] ||= '_session_id' #fixed warning - SECURITY WARNING: No secret option provided to Rack::Session::Cookie. options[:secret] ||= Rails.application.config.secret_token super end end
降级到机架1.4.1应该足以解决这个问题。 有一个问题打开这个,我刚刚提交了一个拉请求 ,似乎为我解决这个问题。 无论如何,请注意这个问题,在修复之后,您应该能够升级到机架1.4.2。
显然,目前正在讨论如何解决这个问题 。 你必须降级到1.4.1,忽略它,或者找出你自己的修复方法,直到这个问题得到处理(如果发生了这种情况,那么就会向后移植)。
Github已经打开了一个问题https://github.com/rails/rails/issues/8789 。 看来Rails 3.2.10与Rack 1.4.2有关的一个bug正在引起这个问题。 海事组织,它可以安全地被忽略,直到问题解决。
编辑 :这个问题已经在Rails 3.2.11中解决了。
rails更新到3.2.13,可以解决这个问题。
Rails用户可以忽略这个消息,因为这是一个Rails的bug。