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.


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


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.


17

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

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).


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.


3

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.