2011-08-10 15 views
7

Projem için bir kimlik doğrulama sistemi yapıyorum.Raylar - Çerezler veya Oturumlar için Aktif Kayıt Deposu

  • Kurabiye Mağaza
  • Active kayıt Store'u Ayrıca

, güvenlik kaygıları nelerdir: mağaza oturumu bilgilere önerilen yaklaşım (sadece başka kullanıcının kimliği hiçbir şey saklamak am) nedir iç içe geçmiş formları kullanarak ve accepts_nested_attributes_for.

Lütfen bildiriniz.

Çok önceden teşekkürler.

cevap

4

Varsayılan değer, tanımlama bilgisi depolamaya varsayılan olarak yüklenir; Genel olarak çerez mağazası özellikle yüksek trafikli siteler için mükemmeldir. Sadece oturumda kritik görevleri saklamamalısınız (yalnızca kullanıcı kimliklerini sakladığınızı söylüyorsunuz).

Bunları kullanmak için güvenlik endişeleri söz konusu olduğunda ... Çok fazla olduğunu düşünmüyorum? Bunları kullanmak için harika bir eğitim için tren yollarına göz atın. Akla gelen tek şey, kitlesel atayabileceğiniz şeyleri sınırlamak için attr_accessible kullanmaktır. Ayrıca CanCan ihtiyacınız varsa yetki için harika bir mücevher. Yalnızca bir kimliği saklıyorsanız kesinlikle cookie'lerle geçin.

+0

Kullanmakta olduğunuz oturum deposundan bağımsız olarak, bu konuda arama yapan herkes için bir çerez vardır. Fark, çerezin oturumun kendisini içerip içermediğine veya sadece veritabanında depolanmış bir oturuma bağlayan bir opak tanıtıcı içerip içermediğine bağlıdır. Her iki durumda da, güvenlik bir endişe ise, bu tür çerezlerden herhangi biri güvenli olmayan bağlantılar üzerinden aktarma olasılığını engellemek için "güvenli" olarak işaretlenmelidir - ki bu da oturumları ele geçirme olasılığına karşı bir savunmasız bırakacaktır. –

+0

Çerezler varsayılan olarak kullanılıyorsa, bunların güvenli oldukları anlamına gelmez. Daha hızlıdır, db'yi kirletmez, ancak güvenli değildir. – sekrett

0

AR oturumu, istekleri oturumla ilişkilendirmek için hala bir çerezde bir çeşit kimlik gerektirecektir.

6

CookieStore'u kullanırken kesinlikle güvenlik sorunları vardır. Ana sorun, bir CookieStore oturumunun sunucu tarafında öldürülmemesidir. Birisi çerezlerinize erişim kazanırsa, sizin gibi kolayca giriş yapabilir. Oturum açıp yeni bir çerezle yeni bir oturum başlatsanız bile. ActiveRecordStore en azından bir veritabanını veritabanından kaldırarak oturumu geçersiz kılma becerisi sağlar.

Bu, hakkında iyi bir blog yazısı. http://www.bryanrite.com/ruby-on-rails-cookiestore-security-concerns-lifetime-pass/

+0

Mükemmel nokta. –

İlgili konular