No se proporciona ninguna opción secreta para Rack :: Session :: ¿Advertencia de cookies?

110

Estoy ejecutando Rails 3.2.3, Ruby 1.9 bajo Fedora 17. Recibo esta advertencia, cuando ejecuto rails s, ¿cómo lo soluciono?

ADVERTENCIA DE SEGURIDAD: No se proporciona ninguna opción secreta para Rack :: Session :: Cookie. Esto representa una amenaza para la seguridad. Se recomienda encarecidamente que proporcione un secreto para evitar vulnerabilidades que pueden ser posibles a partir de cookies creadas. Esto no será compatible con versiones futuras de Rack, y las versiones futuras incluso invalidarán las cookies de usuario existentes.

bigdaveyl
fuente
1
¿Hay un valor establecido en config / initializers / secret_token.rb?
Kashyap
Kashyap: sí, se establece un valor.
bigdaveyl
Tengo la misma advertencia después de actualizar Rails de 3.2.9 a 3.2.10
AlexD
2
En realidad, esta advertencia se agregó a Rack 1.4.2, que se publicó en rubygems.org ayer (6 de enero de 2013), pero el compromiso real se realizó el 18 de marzo de 2012.
AlexD
Sí, hoy yo también recibí tal advertencia
Paritosh Piplewar

Respuestas:

86

Este es un error de Rails, ya que la subclase está violando el contrato de API de superclase.

Los usuarios de Rails pueden ignorar la advertencia de forma segura.

( https://github.com/rack/rack/issues/485#issuecomment-11956708 , énfasis agregado)

Confirmación en la discusión de errores de rieles: https://github.com/rails/rails/issues/7372#issuecomment-11981397

Austin Lin
fuente
4
Actualice sus gemas de rieles, ya que esto se aplica a todas las gemas de rieles compatibles. note @ henrik-n
shadowbq
19

Al leer la discusión basada en la respuesta de tehgeekmeisters, esta advertencia está apareciendo ya que Rails está usando las cookies de Rack de una manera diferente a la prevista. Debería estar bien ignorar esta advertencia por ahora hasta que haya un acuerdo final sobre cómo manejar este problema y una solución.

iltempo
fuente
17

Este problema se ha solucionado en Rails 3.2.11.

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

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

Henrik N
fuente
1
@Dreyfuzz Tenga en cuenta que 3.2.11 es posterior a 3.2.2 (ya que es 11, no 1.1). Así que simplemente actualizar Rails puede solucionar su problema.
Henrik N
Sí, por alguna razón me quedé atascado pensando en notación decimal donde 3.2.2 es lo mismo que 3.2.20. ¡Pensé que estaba al borde de la sangría allí por un minuto!
Dreyfuzz
16

rieles 3.2.9 - ruby ​​1.9.3p125 (2012-02-16 revisión 34643) [i686-linux]

Hola a todos, lo siguiente ha funcionado para mí, puede funcionar para ustedes.


/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
fuente
2
Esta es la respuesta con la menor cantidad de "votos a favor", pero la única respuesta que realmente resuelve el problema, sin degradar y con problemas de compatibilidad. Simplemente borra el mensaje molesto
Aleks
1
Prefiero no parchear el código de los rieles. Creo que es mejor que se resuelva en el comunicado. actualizar a 3.2.11 sería mejor que modificar el código de rieles.
allenhwkim
6

La degradación al rack 1.4.1 debería ser suficiente para resolver esto por ahora. Hay un problema abierto para esto y acabo de enviar una solicitud de extracción que parece solucionarlo por mí. En cualquier caso, observe el problema y debería poder actualizar al rack 1.4.2 después de que se solucione.

Aparentemente, hay una discusión en curso sobre cómo solucionar este problema en otro problema . Tendrá que degradar a 1.4.1, ignorarlo o encontrar su propia solución hasta que esto se solucione (y se vuelva a exportar, si eso sucede).

heartpunk
fuente
5

Se ha abierto un problema en Github https://github.com/rails/rails/issues/8789 . Parece que un error que involucra Rails 3.2.10 con Rack 1.4.2 está causando esto. En mi opinión, se puede ignorar de forma segura hasta que se resuelva el problema.

EDITAR : Este problema se ha resuelto en Rails 3.2.11.

Abhra Basak
fuente
3

Los rieles se actualizan a 3.2.13, pueden resolver esta pregunta.

leonyuan
fuente