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.