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


110

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

安全警告:没有为Rack :: Session :: Cookie提供任何秘密选项。这构成了安全威胁。强烈建议您提供一个秘密,以防止手工制作的cookie可能造成的利用。Rack的将来版本将不支持此功能,将来的版本甚至会使您现有的用户cookie失效。


1
是否在config / initializers / secret_token.rb中设置了值?
Kashyap

Kashyap-是的,已设置一个值。
bigdaveyl 2012年

在将Rails从3.2.9升级到3.2.10之后,我也得到了同样的警告
AlexD 2013年

2
实际上,此警告已添加到昨天(2013年1月6日)在rubygems.org上发布的Rack 1.4.2中,但实际提交已在2012
。– AlexD 2013年

是的,就在今天,我也得到了这样的警告
Paritosh Piplewar

Answers:



19

阅读基于tehgeekmeisters答案的讨论,当Rails以与预期不同的方式使用Rack cookie时,此警告弹出。暂时就可以忽略此警告,直到就如何处理此问题达成最终协议并已解决为止,应该可以。


17

在刚刚发布的Rails 3.2.11中已经解决了该问题。

日志:https//github.com/rails/rails/commits/v3.2.11

提交:https : //github.com/rails/rails/commit/95fe9ef945a35f56fa1c3ef356aec4a3b868937c


1
@Dreyfuzz请注意3.2.11晚于3.2.2(因为它是11,而不是1.1)。因此,仅升级Rails可能会解决您的问题。
Henrik N

是的,由于某种原因,我陷入了以3.2.2与3.2.20相同的十进制表示的思考。以为我在那边流血的一分钟!
Dreyfuzz

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

2
这是“赞成票”最少的答案,但实际上是解决问题的唯一唯一答案,而不会降级,也没有兼容性问题。它只是清除了令人讨厌的消息
Aleks 2013年

1
而不是修补Rails代码。我认为最好在发行版中解决。升级到3.2.11比修改rails代码更好。
allenhwkim 2013年

6

降级到机架1.4.1应该足以解决此问题。 对此一个未解决的问题,我刚刚提交了一个拉取请求,似乎可以解决该问题。无论如何,请注意该问题,在解决此问题后,您应该可以升级到机架1.4.2。

显然,正在讨论如何解决另一个问题。您必须降级到1.4.1,忽略它,或者弄清楚自己的修补程序,直到解决该问题为止(如果发生这种情况,请反向移植)。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.