Keine geheime Option für Rack :: Session :: Cookie-Warnung?

110

Ich verwende Rails 3.2.3, Ruby 1.9 unter Fedora 17. Ich erhalte diese Warnung, wenn ich ausgeführt werde rails s, und wie kann ich das Problem beheben?

SICHERHEITSWARNUNG: Für Rack :: Session :: Cookie wird keine geheime Option bereitgestellt. Dies stellt eine Sicherheitsbedrohung dar. Es wird dringend empfohlen, ein Geheimnis anzugeben, um Exploits zu verhindern, die durch gestaltete Cookies möglich sind. Dies wird in zukünftigen Versionen von Rack nicht unterstützt, und zukünftige Versionen machen sogar Ihre vorhandenen Benutzer-Cookies ungültig.

bigdaveyl
quelle
1
Ist in config / initializers / secret_token.rb ein Wert festgelegt?
Kashyap
Kashyap - ja, ein Wert wird gesetzt.
Bigdaveyl
Ich habe die gleiche Warnung nach dem Upgrade von Rails von 3.2.9 auf 3.2.10
AlexD
2
Eigentlich wurde diese Warnung zu Rack 1.4.2 hinzugefügt, das erst gestern (6. Januar 2013) auf rubygems.org veröffentlicht wurde, aber das eigentliche Commit wurde am 18. März 2012 durchgeführt.
AlexD
Ja, gerade heute habe auch ich eine solche Warnung bekommen
Paritosh Piplewar

Antworten:

86

Dies ist ein Rails-Fehler, da die Unterklasse den API-Vertrag der Oberklasse verletzt.

Die Warnung kann von Rails-Benutzern ignoriert werden.

( https://github.com/rack/rack/issues/485#issuecomment-11956708 , Hervorhebung hinzugefügt)

Bestätigung auf der Schiene Fehler Diskussion: https://github.com/rails/rails/issues/7372#issuecomment-11981397

Austin Lin
quelle
4
Aktualisieren Sie Ihre Rails-Edelsteine, da diese auf alle unterstützten Rails-Edelsteine ​​zurückportiert werden. note @ henrik-n
shadowbq
19

Wenn Sie die Diskussion lesen, die auf der Antwort von tehgeekmeisters basiert, wird diese Warnung angezeigt, da Rails Rack-Cookies anders als beabsichtigt verwendet. Es sollte in Ordnung sein, diese Warnung vorerst einfach zu ignorieren, bis eine endgültige Einigung über die Behandlung dieses Problems und eine Korrektur vorliegt.

iltempo
quelle
17

Dieses Problem wurde in den gerade veröffentlichten Rails 3.2.11 behoben.

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

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

Henrik N.
quelle
1
@Dreyfuzz Beachten Sie, dass 3.2.11 später als 3.2.2 ist (da es 11 ist, nicht 1.1). Nur ein Upgrade von Rails kann Ihr Problem beheben.
Henrik N
Ja, aus irgendeinem Grund habe ich nicht mehr in Dezimalschreibweise gedacht, wobei 3.2.2 mit 3.2.20 identisch ist. Ich dachte, ich wäre dort für eine Minute am Rande!
Dreyfuzz
16

Schienen 3.2.9 - Ruby 1.9.3p125 (2012-02-16 Revision 34643) [i686-Linux]

Hallo allerseits, das Folgende hat für mich funktioniert, es kann für Sie funktionieren.


/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
nbit001
quelle
2
Dies ist die Antwort mit den geringsten "Up Votes", aber die einzige Antwort, die das Problem tatsächlich löst, ohne ein Downgrade durchzuführen und Kompatibilitätsprobleme zu haben. Es löscht nur die nervige Nachricht
Aleks
1
Den Rails-Code lieber nicht patchen. Ich denke, das sollte in der Veröffentlichung besser gelöst werden. Ein Upgrade auf 3.2.11 wäre besser als das Ändern des Rails-Codes.
Allenhwkim
6

Ein Downgrade auf Rack 1.4.1 sollte ausreichen, um dies vorerst zu lösen. Hierfür ist ein Problem offen, und ich habe gerade eine Pull-Anfrage eingereicht , die es für mich zu beheben scheint. Beobachten Sie auf jeden Fall das Problem, und Sie sollten in der Lage sein, ein Upgrade auf Rack 1.4.2 durchzuführen, nachdem dies behoben wurde.

Anscheinend wird derzeit darüber diskutiert, wie dies bei einem anderen Problem behoben werden kann . Sie müssen entweder ein Downgrade auf 1.4.1 durchführen, es ignorieren oder Ihren eigenen Fix herausfinden, bis dies behoben ist (und zurückportiert werden, falls dies überhaupt passiert).

Heartpunk
quelle
5

In Github https://github.com/rails/rails/issues/8789 wurde eine Ausgabe geöffnet . Es scheint, dass ein Fehler, der Rails 3.2.10 mit Rack 1.4.2 betrifft, dies verursacht. IMO, es kann ignoriert werden, bis das Problem behoben ist.

BEARBEITEN : Dieses Problem wurde in Rails 3.2.11 behoben.

Abhra Basak
quelle
3

Schienen Update auf 3.2.13, kann diese Frage lösen.

Leonyuan
quelle