Aucune option secrète fournie à Rack :: Session :: Cookie warning?


110

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

AVERTISSEMENT DE SÉCURITÉ: Aucune option secrète fournie à Rack :: Session :: Cookie. Cela constitue 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 conçus. Cela ne sera pas pris en charge dans les futures versions de Rack, et les versions futures invalideront même vos cookies utilisateur existants.


1
Une valeur est-elle définie dans config / initializers / secret_token.rb?
Kashyap

Kashyap - oui, une valeur est définie.
bigdaveyl

J'ai le même avertissement après la mise à niveau de Rails de 3.2.9 à 3.2.10
AlexD

2
En fait, cet avertissement a été ajouté au rack 1.4.2 qui a été publié sur rubygems.org hier (6 janvier 2013), mais la validation réelle a été effectuée le 18 mars 2012.
AlexD

Ouais, juste aujourd'hui, j'ai aussi reçu un tel avertissement
Paritosh Piplewar

Réponses:


86

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 les utilisateurs de Rails.

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

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


4
Mettez à jour vos gemmes de rails car elles sont rétroportées sur toutes les gemmes de rails prises en charge. note @ henrik-n
shadowbq

19

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


17

Ce problème a été résolu dans la version 3.2.11 de Rails qui vient de sortir.

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

Commit: https://github.com/rails/rails/commit/95fe9ef945a35f56fa1c3ef356aec4a3b868937c


1
@Dreyfuzz Notez que 3.2.11 est postérieur à 3.2.2 (puisque c'est 11, pas 1.1). Donc, la simple mise à niveau de Rails peut résoudre votre problème.
Henrik N

Ouais, pour une raison quelconque, je suis resté coincé à penser en notation décimale où 3.2.2 est identique à 3.2.20. Je pensais que j'étais à la pointe de la technologie pendant une minute!
Dreyfuzz

16

rails 3.2.9 - ruby ​​1.9.3p125 (révision 34643 du 16/02/2012) [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

2
C'est la réponse avec le moins de «votes positifs», mais la seule réponse qui résout réellement le problème, sans rétrogradation, et sans problèmes de compatibilité. Cela efface juste le message ennuyeux
Aleks

1
Plutôt pas patcher le code des rails. Je pense qu'il vaut mieux résoudre ce problème dans la version. la mise à niveau vers 3.2.11 serait meilleure que la modification du code des rails.
allenhwkim

6

La mise à niveau vers le rack 1.4.1 devrait être suffisante pour résoudre ce problème pour le moment. Il y a un problème ouvert pour cela et je viens de soumettre une demande d'extraction qui semble le résoudre pour moi. Dans tous les cas, surveillez le problème et vous devriez être en mesure de mettre à niveau vers le rack 1.4.2 une fois le 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 la version 1.4.1, soit l'ignorer, soit trouver votre propre correctif jusqu'à ce que cela soit réglé (et rétroporté, si cela se produit).


5

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 en soit la cause. OMI, il peut être ignoré en toute sécurité jusqu'à ce que le problème soit résolu.

EDIT : Ce problème a été résolu dans Rails 3.2.11.


3

rails mise à jour à 3.2.13, peut résoudre cette question.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.