web-dev-qa-db-ja.com

Rack :: Session :: Cookie警告に秘密のオプションはありませんか?

Fedora 17でRails 3.2.3、Ruby 1.9を実行しています。_Rails s_を実行すると、この警告が表示されます。修正しますか?

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

110
bigdaveyl

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

Rails users。により、警告は安全に無視できます。

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

Railsバグに関する議論の確認: https://github.com/Rails/rails/issues/7372#issuecomment-11981397

85
Austin Lin

Tehgeekmeistersの回答に基づいた議論を読むと、この警告はRailsが意図とは異なる方法でRack Cookieを使用しているためです。この問題の処理方法と最終的な修正に関する最終合意。

19
iltempo

この問題は、リリースされたばかりのRails 3.2.11。で回避されています。

ログ: https://github.com/Rails/rails/commits/v3.2.11

コミット: https://github.com/Rails/rails/commit/95fe9ef945a35f56fa1c3ef356aec4a3b868937c

17
Henrik N

Rails 3.2.9-Ruby 1.9.3p125(2012-02-16 revision 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
16
nbit001

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

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

6
tehgeekmeister

Githubで問題が公開されました https://github.com/Rails/rails/issues/8789 。 Rails 3.2.10 with Rack 1.4.2に関連するバグが原因です。IMO、問題が解決するまで無視しても問題ありません。

[〜#〜] edit [〜#〜]:この問題はRails 3.2.11。で解決されました。

5
Abhra Basak

Railsの3.2.13への更新により、この問題を解決できます。

3
leonyuan

Railsバグであるため、Railsユーザーはこのメッセージを無視できます。

1
raggi