没有秘密选项提供给Rack :: Session :: Cookie警告?

时间:2012-04-29 18:41:22

标签: ruby-on-rails ruby-on-rails-3.2

我在Fedora 17下运行Rails 3.2.3,Ruby 1.9。当我运行rails s时,我收到此警告,我该如何修复?

  

安全警告:Rack :: Session :: Cookie没有提供任何秘密选项。      这构成了安全威胁。强烈建议你      提供一个秘密,以防止可能从精心设计的漏洞利用      饼干。 Rack的未来版本将不支持此功能      未来版本甚至会使您现有的用户cookie无效。

8 个答案:

答案 0 :(得分:85)

  

这是一个Rails错误,因为子类违反了超类API合同。

     

Rails用户可以安全地忽略该警告。

https://github.com/rack/rack/issues/485#issuecomment-11956708,重点补充)

确认铁轨错误讨论:https://github.com/rails/rails/issues/7372#issuecomment-11981397

答案 1 :(得分:19)

根据tehgeekmeisters的回答阅读讨论,当Rails以不同于预期的方式使用Rack cookie时,会出现此警告。现在应该可以忽略此警告,直到就如何处理此问题和修复到位达成最终协议。

答案 2 :(得分:17)

答案 3 :(得分:16)

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

答案 4 :(得分:6)

降级到机架1.4.1应该足以解决这个问题。 这是an issue open,我刚刚提交了pull request,似乎可以解决这个问题。在任何情况下,请注意该问题,并且在修复此问题后您应该可以升级到机架1.4.2。

显然,正在讨论如何在另一个issue上解决此问题。您必须降级到1.4.1,忽略它,或者在处理之前弄清楚自己的修复(如果发生这种情况,则向后移植)。

答案 5 :(得分:5)

Github https://github.com/rails/rails/issues/8789已经打开了一个问题。似乎涉及Rails 3.2.10和Rack 1.4.2的错误导致了这种情况。 IMO,可以安全地忽略它,直到问题得到解决。

编辑:此问题已在Rails 3.2.11中解决。

答案 6 :(得分:3)

rails更新到3.2.13,可以解决这个问题。

答案 7 :(得分:1)

Rails用户可以忽略此消息,因为它是一个Rails错误。