Nessuna opzione segreta fornita a Rack :: Session :: Cookie warning?


110

Sto eseguendo Rails 3.2.3, Ruby 1.9 sotto Fedora 17. Ricevo questo avviso, quando eseguo rails s, e come lo risolvo?

AVVISO DI SICUREZZA: Nessuna opzione segreta fornita a Rack :: Session :: Cookie. Ciò rappresenta una minaccia per la sicurezza. Si consiglia vivamente di fornire un segreto per prevenire gli exploit che potrebbero essere possibili dai cookie creati. Questo non sarà supportato nelle versioni future di Rack e le versioni future invalideranno persino i cookie utente esistenti.


1
È un valore impostato in config / initializers / secret_token.rb?
Kashyap

Kashyap: sì, è impostato un valore.
bigdaveyl

Ho ricevuto lo stesso avviso dopo aver aggiornato Rails da 3.2.9 a 3.2.10
AlexD

2
In realtà questo avviso è stato aggiunto al Rack 1.4.2 che è stato rilasciato su rubygems.org proprio ieri (6 gennaio 2013) ma il commit effettivo è stato effettuato il 18 marzo 2012.
AlexD

Sì, proprio oggi anch'io ho ricevuto un tale avvertimento
Paritosh Piplewar

Risposte:


86

Questo è un bug di Rails, poiché la sottoclasse sta violando il contratto API della superclasse.

L'avviso può essere tranquillamente ignorato dagli utenti di Rails.

( https://github.com/rack/rack/issues/485#issuecomment-11956708 , enfasi aggiunta)

Conferma sulla discussione sui bug dei binari: https://github.com/rails/rails/issues/7372#issuecomment-11981397


4
Aggiorna le gemme dei binari poiché questo è backported a tutte le gemme delle rotaie supportate. note @ henrik-n
shadowbq

19

Leggendo la discussione basata sulla risposta dei tehgeekmeisters, questo avviso sta spuntando perché Rails sta usando i cookie Rack in un modo diverso da quello previsto. Per ora dovrebbe essere corretto ignorare questo avviso fino a quando non ci sarà un accordo finale su come gestire questo problema e una soluzione in atto.


17

Questo problema è stato risolto nel Rails 3.2.11 appena rilasciato.

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

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


1
@Dreyfuzz Nota che 3.2.11 è successiva alla 3.2.2 (poiché è 11, non 1.1). Quindi il solo aggiornamento di Rails potrebbe risolvere il tuo problema.
Henrik N

Sì, per qualche motivo sono rimasto bloccato a pensare in notazione decimale dove 3.2.2 è uguale a 3.2.20. Pensavo di essere sul filo del rasoio lì per un minuto!
Dreyfuzz

16

rails 3.2.9 - ruby ​​1.9.3p125 (2012-02-16 revisione 34643) [i686-linux]

Ciao a tutti, quanto segue ha funzionato per me, potrebbe funzionare per te.


/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
Questa è la risposta con il minor numero di "voti positivi", ma l'unica risposta che risolve effettivamente il problema, senza downgrade e con problemi di compatibilità. Cancella solo il fastidioso messaggio
Aleks

1
Piuttosto non patchare il codice rails. Penso che sia meglio risolverlo nel rilascio. l'aggiornamento a 3.2.11 sarebbe meglio che modificare il codice rails.
allenhwkim

6

Il downgrade al rack 1.4.1 dovrebbe essere sufficiente per risolvere questo problema per ora. C'è un problema aperto per questo e ho appena inviato una richiesta pull che sembra risolverlo per me. In ogni caso, osserva il problema e dovresti essere in grado di eseguire l'aggiornamento al rack 1.4.2 dopo che è stato risolto.

Apparentemente, è in corso una discussione su come risolvere questo problema su un altro problema . Dovrai eseguire il downgrade a 1.4.1, ignorarlo o trovare la tua soluzione fino a quando non verrà risolto (e sottoposto a backport, se ciò accade).


5

È stato aperto un problema in Github https://github.com/rails/rails/issues/8789 . Sembra che la causa sia un bug che coinvolge Rails 3.2.10 con Rack 1.4.2. IMO, può essere tranquillamente ignorato fino a quando il problema non viene risolto.

EDIT : questo problema è stato risolto in Rails 3.2.11.


3

rails aggiornato alla 3.2.13, può risolvere questa domanda.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.