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 も無効になります。
サブクラスがスーパークラスの API 契約に違反しているため、これは Rails のバグです。
Rails ユーザーはこの警告を無視しても問題ありません。
( https://github.com/rack/rack/issues/485#issuecomment-11956708、強調追加)
Rails バグ ディスカッションの確認: https://github.com/rails/rails/issues/7372#issuecomment-11981397
tehgeekmeisters の回答に基づいてディスカッションを読むと、Rails がラック クッキーを意図したものとは異なる方法で使用しているため、この警告が表示されます。この問題の処理方法と修正方法について最終的な合意が得られるまで、この警告を無視しても問題ありません。
この問題は、リリースされたばかりの 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
今のところ、これを解決するには、ラック 1.4.1 にダウングレードするだけで十分です。 これには未解決の問題があり、私はそれを修正するように見えるプル リクエストを送信しました。いずれにせよ、問題を監視してください。これが修正された後、ラック 1.4.2 にアップグレードできるはずです。
どうやら、別の問題でこれを修正する方法について進行中の議論があります。これが処理されるまで、1.4.1 にダウングレードするか、無視するか、独自の修正を考え出す必要があります (それが発生した場合はバックポートされます)。
Github https://github.com/rails/rails/issues/8789で問題が開かれました。Rails 3.2.10 と Rack 1.4.2 に関連するバグが原因のようです。IMO、問題が解決されるまで無視しても問題ありません。
編集: この問題は Rails 3.2.11 で解決されました。
rails を 3.2.13 にアップデートすると、この問題を解決できます。