Rack :: Session :: Cookie uyarısına gizli seçenek sağlanmadı mı?


110

Fedora 17 altında Rails 3.2.3, Ruby 1.9 çalıştırıyorum. Çalıştırdığımda bu uyarıyı alıyorum rails sve nasıl düzeltebilirim?

GÜVENLİK UYARISI: Rack :: Session :: Cookie'ye gizli bir seçenek verilmemiştir. Bu bir güvenlik tehdidi oluşturur. Hazırlanmış çerezlerden mümkün olabilecek istismarları önlemek için bir sır vermeniz şiddetle tavsiye edilir. Bu, Rack'in gelecekteki sürümlerinde desteklenmeyecek ve gelecekteki sürümler, mevcut kullanıcı çerezlerinizi bile geçersiz kılacaktır.


1
Config / initializers / secret_token.rb'de bir değer ayarlanmış mı?
Kashyap

Kashyap - evet, bir değer belirlenir.
bigdaveyl


2
Aslında bu uyarı, rubygems.org'da daha dün (6 Ocak 2013) yayınlanan ancak gerçek işleme 18 Mart 2012'de yapılan
1.4.2 Rafına eklendi

Evet, sadece bugün ben de böyle bir uyarı aldım
Paritosh Piplewar 07

Yanıtlar:


86

Alt sınıf, üst sınıf API sözleşmesini ihlal ettiğinden bu bir Rails hatasıdır.

Uyarı, Rails kullanıcıları tarafından güvenle yok sayılabilir.

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

Raylar hata tartışmasıyla ilgili onay: https://github.com/rails/rails/issues/7372#issuecomment-11981397


4
Ray mücevherlerinizi güncelleyin, çünkü bu, desteklenen tüm ray cevherlerine geri aktarılır. note @ henrik-n
shadowbq

19

Tartışmayı tehgeekmeisters'ın cevabına göre okurken, Rails Rack çerezlerini amaçlanandan farklı bir şekilde kullandığından bu uyarı ortaya çıkıyor. Bu sorunun nasıl ele alınacağına dair nihai bir anlaşma ve yerinde bir düzeltme olana kadar bu uyarıyı şimdilik görmezden gelmek sorun değil.


17

1
@Dreyfuzz 3.2.11'in 3.2.2'den sonra olduğuna dikkat edin (1.1 değil, 11 olduğundan). Yani sadece Rails'i yükseltmek sorununuzu çözebilir.
Henrik N

Evet, bazı nedenlerden dolayı, 3.2.2'nin 3.2.20 ile aynı olduğu ondalık gösterimde takılıp kaldım. Bir dakikalığına kanayan sınırda olduğumu sanıyordum!
Dreyfuzz

16

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

Herkese merhaba, aşağıdakiler benim için çalıştı, sizin için çalışabilir.


/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
Bu, "yukarı oyların" en azına sahip olan yanıttır, ancak sorunu gerçekten düşürmeden ve uyumluluk sorunları yaşamadan çözen tek yanıttır . Sadece can sıkıcı mesajı temizliyor
Aleks

1
Ray kodunu yamamak yerine. Bunun sürümde çözülmesinin daha iyi olacağını düşünüyorum. 3.2.11'e yükseltme rayların kodunu değiştirmekten daha iyi olacaktır.
allenhwkim

6

1.4.1 rafına düşürmek, şimdilik bunu çözmek için yeterli olacaktır. Bunun için açık bir sorun var ve benim için düzeltecek gibi görünen bir çekme isteği gönderdim . Her durumda, sorunu izleyin ve bu düzeltildikten sonra 1.4.2 rafına yükseltebilmelisiniz.

Görünüşe göre, bunun başka bir konuda nasıl düzeltileceğine dair devam eden tartışmalar var . Ya 1.4.1'e düşürmeniz, onu görmezden gelmeniz ya da bu sorun çözülene kadar (ve bu gerçekleşirse geriye dönük olarak) kendi düzeltmenizi bulmanız gerekir.



3

Rayların 3.2.13'e güncellenmesi, bu soruyu çözebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.