Rack :: Session :: Cookieの警告に秘密のオプションが提供されていませんか?


110

Fedora 17でRails 3.2.3、Ruby 1.9を実行rails sしています。を実行すると、この警告が表示されます。修正方法を教えてください。

セキュリティの警告:Rack :: Session :: Cookieにシークレットオプションが提供されていません。これはセキュリティ上の脅威になります。巧妙に細工されたCookieから悪用される可能性がある悪用を防ぐために、シークレットを提供することを強くお勧めします。これはラックの将来のバージョンではサポートされなくなり、将来のバージョンでは既存のユーザーCookieも無効になります。


1
config / initializers / secret_token.rbに値が設定されていますか?
Kashyap

Kashyap-はい、値が設定されています。
bigdaveyl 2012

Railsを3.2.9から3.2.10にアップグレードした後も同じ警告が表示されます
AlexD

2
実際、この警告は、昨日(2013年1月6日)にrubygems.orgでリリースされたRack 1.4.2に追加されましたが、実際のコミットは2012
。– AlexD

ええ、ちょうど今日も私はそのような警告を受けました
パリトッシュ

回答:


86

サブクラスがスーパークラスAPIコントラクトに違反しているため、これはRailsのバグです。

警告はRailsユーザーが安全に無視できます。

https://github.com/rack/rack/issues/485#issuecomment-11956708、強調を追加)

Railsバグディスカッションの確認:https : //github.com/rails/rails/issues/7372#issuecomment-11981397


4
これはサポートされているすべてのRails Gemにバックポートされるため、Rails Gemを更新します。@ henrik-nに注意してください
shadowbq 2013

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より遅いことに注意してください(それは1.1ではなく11であるため)。したがって、Railsをアップグレードするだけで問題が解決する可能性があります。
Henrik N

ええ、なぜか、3.2.2が3.2.20と同じである10進数表記で、行き詰まった。私はそこに一瞬最先端にいると思いました!
Dreyfuzz 2013

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
これは、「賛成票」が最も少ない回答です、ダウングレードせずに互換性の問題がなく、実際に問題を解決する唯一の回答です。それは迷惑なメッセージをクリアするだけです
アレクス

1
むしろRailsコードにパッチを適用しません。これはリリースで解決する方が良いと思います。3.2.11へのアップグレードは、railsコードの変更よりも優れています。
allenhwkim 2013

6

現時点でこれを解決するには、ラック1.4.1へのダウングレードで十分です。 これに対して未解決の問題がありそれを修正するように見えるプルリクエスト送信しました。いずれの場合も、問題を監視してください。これが修正されると、ラック1.4.2にアップグレードできるはずです。

どうやら、別の問題でこれを修正する方法についての進行中の議論があります。1.4.1にダウングレードするか、無視するか、またはこれが処理されるまで(そしてそれが発生した場合でもバックポートされるまで)独自の修正を理解する必要があります。



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.