Nenhuma opção secreta fornecida para Rack :: Session :: Cookie warning?


110

Estou executando o Rails 3.2.3, Ruby 1.9 no Fedora 17. Recebo este aviso, quando executo rails s, e como faço para corrigir?

AVISO DE SEGURANÇA: Nenhuma opção secreta fornecida para Rack :: Session :: Cookie. Isso representa uma ameaça à segurança. É altamente recomendável que você forneça um segredo para evitar explorações que podem ser possíveis de cookies criados. Isso não será suportado em versões futuras do Rack, e versões futuras irão até mesmo invalidar seus cookies de usuário existentes.


1
Um valor está definido em config / initializers / secret_token.rb?
Kashyap

Kashyap - sim, um valor foi definido.
bigdaveyl

Recebi o mesmo aviso depois de atualizar o Rails 3.2.9 para 3.2.10
AlexD

2
Na verdade, este aviso foi adicionado ao Rack 1.4.2, que foi lançado em rubygems.org ontem (6 de janeiro de 2013), mas o commit real foi feito em 18 de março de 2012.
AlexD

Sim, hoje eu também recebi esse aviso
Paritosh Piplewar

Respostas:



19

Lendo a discussão com base na resposta do tehgeekmeisters, este aviso está aparecendo porque o Rails está usando os cookies do Rack de uma maneira diferente da pretendida. Deve ser normal simplesmente ignorar este aviso por enquanto, até que haja um acordo final sobre como lidar com esse problema e uma correção.


17

1
@Dreyfuzz Observe que 3.2.11 é posterior a 3.2.2 (já que é 11, não 1.1). Portanto, apenas atualizar o Rails pode resolver seu problema.
Henrik N de

Sim, por algum motivo, fiquei pensando em notação decimal onde 3.2.2 é o mesmo que 3.2.20. Pensei que estava no limite por um minuto!
Dreyfuzz de

16

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

Olá a todos, o seguinte funcionou para mim, pode funcionar para você.


/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 é a resposta com o menor dos "votos positivos", mas a única resposta que realmente resolve o problema, sem fazer downgrade e com problemas de compatibilidade. Isso apenas apaga a mensagem irritante
Aleks,

1
Em vez de corrigir o código do Rails. Acho melhor resolver isso no release. atualizar para 3.2.11 seria melhor do que modificar o código do Rails.
allenhwkim

6

O downgrade para o rack 1.4.1 deve ser suficiente para resolver isso por enquanto. um problema aberto para isso e acabei de enviar uma solicitação pull que parece corrigi-lo para mim. Em qualquer caso, observe o problema e você poderá atualizar para o rack 1.4.2 depois que isso for corrigido.

Aparentemente, há uma discussão em andamento sobre como corrigir isso em outro problema . Você terá que fazer o downgrade para 1.4.1, ignorá-lo ou descobrir sua própria correção até que isso seja resolvido (e backported, se isso acontecer).


5

Um problema foi aberto no Github https://github.com/rails/rails/issues/8789 . Parece que um bug envolvendo Rails 3.2.10 com Rack 1.4.2 está causando isso. IMO, ele pode ser ignorado com segurança até que o problema seja resolvido.

EDITAR : Esse problema foi resolvido no Rails 3.2.11.


3

A atualização do rails para 3.2.13 pode resolver esta questão.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.