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

big*_*eyl 110 ruby-on-rails ruby-on-rails-3.2

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

安全警告:Rack :: Session :: Cookie没有提供任何秘密选项.这构成了安全威胁.强烈建议您提供密码以防止可能来自精心制作的Cookie的漏洞利用.在将来的Rack版本中不支持此功能,未来版本甚至会使您现有的用户cookie无效.

Aus*_*Lin 85

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

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

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

关于rails bug讨论的确认:https://github.com/rails/rails/issues/7372#issuecomment-11981397

  • 更新您的rails gems,因为它被移植到所有支持的rails gems.注意@ henrik-n (4认同)

ilt*_*mpo 19

阅读基于tehgeekmeisters的讨论回答,这个警告突然出现,因为Rails使用Rack cookie的方式与预期不同.现在应该可以忽略此警告,直到就如何处理此问题和修复到位达成最终协议.


小智 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
Run Code Online (Sandbox Code Playgroud)

  • 这是最少的"向上投票"的答案,但**实际**解决问题,没有降级,兼容性问题的唯一答案.它只是清除烦人的消息 (2认同)

teh*_*ter 6

降级到机架1.4.1应该足以解决这个问题. 一个问题是开放的,我刚刚提交了一个拉动请求,似乎为我解决了这个问题.在任何情况下,请注意该问题,并且在修复此问题后您应该能够升级到机架1.4.2.

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


Abh*_*sak 5

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

编辑:此问题已在Rails 3.2.11中得到解决.