Нет секретной опции, предоставляемой Rack::Session:: Cookie warning?


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

предупреждение о безопасности: нет секретной опции, предоставляемой Rack:: Session:: Cookie. Это создает угрозу безопасности. Настоятельно рекомендуется, чтобы вы предоставьте секрет для предотвращения эксплойтов, которые могут быть созданы cookies. Это не будет поддерживаться в будущих версиях Rack, и будущие версии даже аннулируют существующие пользовательские куки.

8 109

8 ответов:

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

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

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

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

читая обсуждение, основанное на ответе tehgeekmeisters, это предупреждение появляется, поскольку Rails использует куки-файлы Rack иначе, чем предполагалось. Это должно быть нормально, чтобы просто игнорировать это предупреждение на данный момент, пока не будет окончательного соглашения о том, как справиться с этой проблемой и исправить на месте.

эта проблема была решена в только что выпущенных Rails 3.2.11.

Log:https://github.com/rails/rails/commits/v3.2.11

Commit: 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 должно быть достаточным, чтобы решить эту проблему на данный момент. здесь вопрос открыт для этого и я просто представил pull-запрос это, кажется, исправить это для меня. В любом случае, следите за проблемой, и вы должны быть в состоянии перейти на стойку 1.4.2 после того, как это будет исправлено.

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

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

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

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

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