我正在Fedora 17下运行Rails 3.2.3,Ruby 1.9。运行时收到此警告,rails s
如何解决?
安全警告:没有为Rack :: Session :: Cookie提供任何秘密选项。这构成了安全威胁。强烈建议您提供一个秘密,以防止手工制作的cookie可能造成的利用。Rack的将来版本将不支持此功能,将来的版本甚至会使您现有的用户cookie失效。
我正在Fedora 17下运行Rails 3.2.3,Ruby 1.9。运行时收到此警告,rails s
如何解决?
安全警告:没有为Rack :: Session :: Cookie提供任何秘密选项。这构成了安全威胁。强烈建议您提供一个秘密,以防止手工制作的cookie可能造成的利用。Rack的将来版本将不支持此功能,将来的版本甚至会使您现有的用户cookie失效。
Answers:
这是Rails的错误,因为子类违反了超类API合同。
Rails用户可以安全地忽略该警告。
(https://github.com/rack/rack/issues/485#issuecomment-11956708,添加了重点)
关于Rails Bug讨论的确认:https : //github.com/rails/rails/issues/7372#issuecomment-11981397
在刚刚发布的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
Github中已打开一个问题https://github.com/rails/rails/issues/8789。看来,涉及Rails 3.2.10和Rack 1.4.2的bug导致了此问题。IMO,在解决问题之前,可以放心地忽略它。
编辑:此问题已在Rails 3.2.11中解决。