我正在運行Rails 3.2.3,Fedora 17下的Ruby 1.9。我得到這個警告,當我運行rails s
時,我該如何修復?提供給Rack :: Session :: Cookie警告的祕密選項?
安全警告:沒有提供給Rack :: Session :: Cookie的祕密選項。 這構成安全威脅。強烈建議您提供一個祕密,以防止從製作的 Cookie中獲得可能的漏洞利用。這在將來的Rack版本中將不被支持,未來的版本甚至會使您現有的用戶Cookie無效。
我正在運行Rails 3.2.3,Fedora 17下的Ruby 1.9。我得到這個警告,當我運行rails s
時,我該如何修復?提供給Rack :: Session :: Cookie警告的祕密選項?
安全警告:沒有提供給Rack :: Session :: Cookie的祕密選項。 這構成安全威脅。強烈建議您提供一個祕密,以防止從製作的 Cookie中獲得可能的漏洞利用。這在將來的Rack版本中將不被支持,未來的版本甚至會使您現有的用戶Cookie無效。
這是一個Rails錯誤,因爲子類違反了超類API合同。
Rails用戶可以安全地忽略該警告。
(https://github.com/rack/rack/issues/485#issuecomment-11956708,加上強調)
確認在鐵軌上的bug討論:https://github.com/rails/rails/issues/7372#issuecomment-11981397
更新您的導軌寶石,因爲這是回溯到所有支持的導軌寶石。 note @ henrik-n – shadowbq
現在降級到機架1.4.1應該足以解決這個問題。
這裏有
an issue open,我剛剛提交了一個
pull request,似乎爲我解決了這個問題。無論如何,請注意這個問題,並且在解決此問題之後,您應該能夠升級到機架1.4.2。
顯然,目前正在討論如何在另一個issue上修復此問題。你必須降級到1.4.1,忽略它,或者找出你自己的修復方法,直到它被處理(並且如果發生了這種情況,則會被回溯)。
根據tehgeekmeisters的回答閱讀討論,當Rails以不同於預期的方式使用Rack cookie時,此警告即出現。現在應該可以忽略這個警告,直到就如何處理這個問題和解決方案達成最終協議爲止。
Rails用戶可以忽略此消息,因爲它是一個Rails錯誤。
的問題已在Github上https://github.com/rails/rails/issues/8789被打開。看起來,涉及Rails 3.2.10與Rack 1.4.2的一個bug正在造成這種情況。國際海事組織,它可以安全地被忽略,直到問題解決。
編輯:此問題已在Rails 3.2.11中解決。
這個問題已經在剛剛發佈的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
這是「最多投票」的答案,但是**實際**解決問題的唯一答案是沒有降級和兼容性問題。它只是清除令人討厭的消息 – Aleks
而不是修補rails代碼。我認爲這個更好在發佈中得到解決。升級到3.2.11會比修改rails代碼更好。 – allenhwkim
謝謝,這也適用於我。 –
是在config/initializers/secret_token.rb中設置的值嗎? – Kashyap
Kashyap - 是的,設置了一個值。 – bigdaveyl
將Rails從3.2.9升級到3.2.10後,我得到了相同的警告 – AlexD