Не предоставляется секретный параметр для предупреждения Rack:: Session:: Cookie?

Я запускаю Rails 3.2.3, Ruby 1.9 в Fedora 17. Я получаю это предупреждение, когда я запускаю rails s, и как я могу исправить?

ПРЕДОСТЕРЕЖЕНИЕ БЕЗОПАСНОСТИ: Никакой секретный параметр для Rack:: Session:: Cookie.    Это создает угрозу безопасности. Настоятельно рекомендуется, чтобы вы    предоставить секрет для предотвращения эксплойтов, которые могут быть возможны из обработанных    печенье. Это не будет поддерживаться в будущих версиях Rack и    будущие версии даже аннулируют существующие файлы cookie пользователя.

Ответ 1

Это ошибка Rails, так как подкласс нарушает контракт API суперкласса.

Предупреждение можно безопасно игнорировать пользователями Rails.

(https://github.com/rack/rack/issues/485#issuecomment-11956708, добавлено выделение)

Подтверждение при обсуждении ошибок рельсов: https://github.com/rails/rails/issues/7372#issuecomment-11981397

Ответ 2

Чтение обсуждения на основе ответа tehgeekmeisters, это предупреждение появляется, так как Rails использует Cookies в стойке по-другому, чем предполагалось. Наверное, следует просто игнорировать это предупреждение до тех пор, пока не будет достигнуто окончательное соглашение о том, как справиться с этой проблемой и установить исправление.

Ответ 4

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

Ответ 5

До сих пор для решения этой проблемы должно быть достаточно понижения до стойки 1.4.1. Там проблема открыта для этого, и я просто отправил запрос pull, который, кажется, исправит это для меня. В любом случае следите за проблемой, и после этого вы сможете обновиться до стойки 1.4.2.

По-видимому, продолжалось обсуждение того, как исправить это на другом issue. Вам придется либо понизиться до 1.4.1, либо проигнорировать его, либо выяснить свое собственное исправление до тех пор, пока это не будет рассмотрено (и не будет выполнено резервное копирование, если это произойдет).

Ответ 6

В Github была открыта проблема https://github.com/rails/rails/issues/8789. Похоже, что причиной этого является ошибка с Rails 3.2.10 с Rack 1.4.2. IMO, его можно безопасно игнорировать, пока проблема не будет решена.

EDIT. Эта проблема была решена в Rails 3.2.11.

Ответ 7

Обновление рельсов до 3.2.13, может решить этот вопрос.

Ответ 8

Пользователи Rails могут игнорировать это сообщение, так как это ошибка Rails.