2012-04-29 44 views
109

我正在運行Rails 3.2.3,Fedora 17下的Ruby 1.9。我得到這個警告,當我運行rails s時,我該如何修復?提供給Rack :: Session :: Cookie警告的祕密選項?

安全警告:沒有提供給Rack :: Session :: Cookie的祕密選項。 這構成安全威脅。強烈建議您提供一個祕密,以防止從製作的 Cookie中獲得可能的漏洞利用。這在將來的Rack版本中將不被支持,未來的版本甚至會使您現有的用戶Cookie無效。

+1

是在config/initializers/secret_token.rb中設置的值嗎? – Kashyap

+0

Kashyap - 是的,設置了一個值。 – bigdaveyl

+0

將Rails從3.2.9升級到3.2.10後,我得到了相同的警告 – AlexD

回答

6

現在降級到機架1.4.1應該足以解決這個問題。 這裏有 an issue open,我剛剛提交了一個 pull request,似乎爲我解決了這個問題。無論如何,請注意這個問題,並且在解決此問題之後,您應該能夠升級到機架1.4.2。

顯然,目前正在討論如何在另一個issue上修復此問題。你必須降級到1.4.1,忽略它,或者找出你自己的修復方法,直到它被處理(並且如果發生了這種情況,則會被回溯)。

19

根據tehgeekmeisters的回答閱讀討論,當Rails以不同於預期的方式使用Rack cookie時,此警告即出現。現在應該可以忽略這個警告,直到就如何處理這個問題和解決方案達成最終協議爲止。

1

Rails用戶可以忽略此消息,因爲它是一個Rails錯誤。

5

的問題已在Github上https://github.com/rails/rails/issues/8789被打開。看起來,涉及Rails 3.2.10與Rack 1.4.2的一個bug正在造成這種情況。國際海事組織,它可以安全地被忽略,直到問題解決。

編輯:此問題已在Rails 3.2.11中解決。

17

這個問題已經在剛剛發佈的Rails 3.2.11中解決了。

登錄:https://github.com/rails/rails/commits/v3.2.11

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

+0

我在Rails 3.2.2中遇到了Ruby 1.9.3中的這個錯誤。 – Dreyfuzz

+1

@Dreyfuzz請注意,3.2.11晚於3.2.2(因爲它是11,而不是1.1)。所以只需升級Rails即可解決您的問題。 –

+0

是的,出於某種原因,我陷入了十進制符號思維,其中3.2.2與3.2.20相同。我以爲我在那裏出血一分鐘! – Dreyfuzz

16

軌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 
+2

這是「最多投票」的答案,但是**實際**解決問題的唯一答案是沒有降級和兼容性問題。它只是清除令人討厭的消息 – Aleks

+1

而不是修補rails代碼。我認爲這個更好在發佈中得到解決。升級到3.2.11會比修改rails代碼更好。 – allenhwkim

+0

謝謝,這也適用於我。 –

3

軌更新3.2.13,可以解決這個問題。

+0

沒有解決我 – coorasse

相關問題