web-dev-qa-db-fra.com

Aucune option secrète n'est fournie à Rack :: Session :: Avertissement de cookie?

J'utilise Rails 3.2.3, Ruby 1.9 sous Fedora 17. J'obtiens cet avertissement lorsque j'exécute Rails s, et comment résoudre ce problème?

AVERTISSEMENT DE SÉCURITÉ: Aucune option secrète fournie à Rack :: Session :: Cookie. Cela représente une menace pour la sécurité. Il est fortement recommandé de fournir un secret pour empêcher les exploits qui pourraient être possibles à partir de cookies créés. Cela ne sera pas pris en charge dans les futures versions de Rack, et les futures versions invalideront même vos cookies utilisateur existants.

110
bigdaveyl

Il s'agit d'un bogue Rails, car la sous-classe viole le contrat d'API de la superclasse.

L'avertissement peut être ignoré en toute sécurité par Rails utilisateurs.

( https://github.com/rack/rack/issues/485#issuecomment-11956708 , emphase ajoutée)

Confirmation sur la discussion de bogue Rails: https://github.com/Rails/rails/issues/7372#issuecomment-11981397

85
Austin Lin

En lisant la discussion basée sur la réponse de tehgeekmeisters, cet avertissement apparaît sous la forme Rails utilise les cookies de Rack d'une manière différente de celle prévue. Il devrait être correct d'ignorer cet avertissement pour l'instant jusqu'à ce qu'il y ait un accord final sur la façon de traiter ce problème et un correctif en place.

19
iltempo
17
Henrik N

Rails 3.2.9 - Ruby 1.9.3p125 (2012-02-16 révision 34643) [i686-linux]

Bonjour à tous, ce qui suit a fonctionné pour moi, cela peut fonctionner pour vous.


/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

La mise à niveau vers le rack 1.4.1 devrait être suffisante pour résoudre ce problème pour l'instant. Il y a n problème ouvert pour cela et je viens de soumettre un pull request qui semble le résoudre pour moi. Dans tous les cas, surveillez le problème et vous devriez pouvoir mettre à niveau vers le rack 1.4.2 une fois ce problème résolu.

Apparemment, il y a une discussion en cours sur la façon de résoudre ce problème sur un autre problème . Vous devrez soit rétrograder vers 1.4.1, l'ignorer, ou trouver votre propre correctif jusqu'à ce qu'il soit résolu (et rétroporté, si cela se produit).

6
tehgeekmeister

Un problème a été ouvert dans Github https://github.com/Rails/rails/issues/8789 . Il semble qu'un bogue impliquant Rails 3.2.10 avec Rack 1.4.2 est à l'origine de cela. IMO, il peut être ignoré en toute sécurité jusqu'à ce que le problème soit résolu.

[~ # ~] modifier [~ # ~] : ce problème a été résolu dans Rails 3.2.11.

5
Abhra Basak

La mise à jour de Rails vers 3.2.13, peut résoudre cette question.

3
leonyuan

Les utilisateurs de Rails peuvent ignorer ce message, car il s'agit d'un bogue Rails.

1
raggi