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.
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
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.
Ce problème a été résolu dans le dernier Rails 3.2.11.
Journal: https://github.com/Rails/rails/commits/v3.2.11
Valider: https://github.com/Rails/rails/commit/95fe9ef945a35f56fa1c3ef356aec4a3b868937c
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
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).
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.
La mise à jour de Rails vers 3.2.13, peut résoudre cette question.
Les utilisateurs de Rails peuvent ignorer ce message, car il s'agit d'un bogue Rails.