我的Fedora 17下运行的Rails 3.2.3,Ruby 1.9的我得到这样的警告,当我运行rails s
,以及如何解决?
安全警告:提供给机架::会议::曲奇没有秘密的选项。 这会带来安全威胁。 我们强烈建议您提供一个保密,以防止该漏洞可能从制作的饼干。 这不会在机架的未来版本的支持,未来的版本甚至会取消现有用户的cookie。
我的Fedora 17下运行的Rails 3.2.3,Ruby 1.9的我得到这样的警告,当我运行rails s
,以及如何解决?
安全警告:提供给机架::会议::曲奇没有秘密的选项。 这会带来安全威胁。 我们强烈建议您提供一个保密,以防止该漏洞可能从制作的饼干。 这不会在机架的未来版本的支持,未来的版本甚至会取消现有用户的cookie。
这是Rails的bug,作为子类违反了超API的合同。
该警告可以通过Rails的用户可以放心地忽略。
( https://github.com/rack/rack/issues/485#issuecomment-11956708 ,强调)
在铁轨上的bug讨论确认: https://github.com/rails/rails/issues/7372#issuecomment-11981397
阅读基于tehgeekmeisters答案的讨论,这个警告弹出像Rails是比预期不同的方式使用机架饼干。 应该差不多,只是忽略此警告现在为止没有对如何处理这一问题最终协议,并在地方修复。
这个问题已经在刚刚发布的Rails 3.2.11被合作周围。
登录: https://github.com/rails/rails/commits/v3.2.11
提交: https://github.com/rails/rails/commit/95fe9ef945a35f56fa1c3ef356aec4a3b868937c
导轨3.2.9 -红宝石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机架应足以解决这个现在。 有开放式的问题,对于这一点,我刚刚交了一个pull请求 ,似乎我对其进行修复。 在任何情况下,看问题,你应该能够升级到1.4.2架后,这是固定的。
显然,有一个关于如何解决这一问题上的另一个正在进行的讨论问题 。 你必须选择降级至1.4.1,忽略它,或弄清楚自己修复,直到这是处理(和回迁,如果连发生)。
的问题已在Github上被打开https://github.com/rails/rails/issues/8789 。 看来,涉及的Rails 3.2.10与机架1.4.2中的错误导致此。 海事组织,它可以安全地忽略,直到问题得到解决。
编辑 :这个问题在Rails的3.2.11得到解决。
轨更新3.2.13,可以解决这个问题。
Rails的用户可以忽略此消息,因为它是一个Rails的错误。