Seansın "gizli" seçeneği nedir?


111

Kriptografi hakkında hiçbir şey bilmiyorum. Seans sırrının ne olduğunu merak ediyorum.

Şunun gibi bir kod görüyorum:

app.use(express.session({
  store: mongoStore({
    url: app.set('db-uri')
  }),
  secret: 'topsecret'
}));

Sır nedir ve bunu değiştirmeli miyim?

Yanıtlar:


83

Evet, değiştirmelisiniz. Bağlantıdaki bir oturum sırrı basitçe hash'i hesaplamak için kullanılır . Dizge olmadan, oturuma erişim esasen "reddedilir". Biraz yardımcı olması gereken bağlantı belgelerine bir göz atın .


43
Sadece değiştirmekle kalmaz, değiştirmelisiniz.
Michael Mior

1
@MichaelMior, ne sıklıkla?
FRD

9
@FRD Demek istediğim, böyle bir şeyin varsayılanını korumamanız gerektiğiydi topsecret. Sır, rastgele bir karakter dizisi olmalıdır. İdeal olarak, keşfedilmesi durumunda periyodik olarak da değiştirirsiniz. Ancak bu, gizli rotasyon desteği gerektirir, böylece mevcut oturumları hemen geçersiz kılmazsınız. Yani iki seans sırrı aynı anda geçerli sayılmalıdır. Bildiğim kadarıyla, Express şu anda sırları değiştirmeyi desteklemiyor.
Michael Mior

7
@MichaelMior express-session 1.11.0'dan beri gizli rotasyonu destekliyor. Dokümanlardan: "Bir sır dizisi sağlanırsa, oturum kimliği tanımlama bilgisini imzalamak için yalnızca ilk öğe kullanılırken, isteklerdeki imzayı doğrularken tüm öğeler dikkate alınacaktır." (Bkz expressjs / oturum # 127 Detaylar için.)
Wolfgang

Bu, imzalı kurabiye ile aynı şey mi, evet ise .. bunu yapmanız gerekiyor mu:res.cookie('name', 'value', {signed: true})
Muhammad Umer

22

Sır, HMAC ile oturuma hashing uygulamak için kullanılır:

https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L256

Daha sonra oturum, parmak izini hash'e karşı şu sırra göre kontrol ederek oturum kaçırmaya karşı korunur:

https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L281-L287


3
Hash, oturum kaçırmaya karşı nasıl koruma sağlar? Saldırgan oturum tanımlama bilgisine sahipse, hash de yok mu? Saldırgan ise gelmez çerez, o zaman nasıl gizli karma herhangi zor (sadece daha uzun bir rasgele oturum numarasını zorunda karşı) tahmin etmek yapar?
Stuart P. Bentley

8
sır, karmanın tuzudur, bu sadece birinin şunları yapmasını zorlaştırır: 1. kimlik avı amaçlı bir çerezin şifresini çözmek, 2. Bir kullanıcının kimliğine bürünerek bir oturumu aldatmak, çünkü yapamayacakları sırrı (tuz) bilmiyorlar uygun bir oturum kimliği üretin.
mattdlockyer

7
Bu 3 yıllık bir cevap olduğu için her iki bağlantı da geçersiz.
trysis

5
@mattdlockyer Bu sizi oturum kaçırmaya karşı korumaz. Ve bir saldırgan neden bir çerezin şifresini çözmeye çalışsın? Saldırganın çerezi varsa, oturum bitene kadar zaten tam erişime sahiptir. Demek istediğim, bu, kullanıcıların şifrelerini çerezde saklamıyorlar, bu çok saçma olurdu. Ve jwt gibi şeylerden neredeyse her zaman kaçınılmalıdır.
Forivin

Bir oturumun sırrının amacına ilişkin karışık cevaplar var gibi görünüyor. Bazıları bunun oturum kaçırmaya karşı koruduğunu söylerken, diğerleri buna katılmıyor. Birisi bu hash'i oluşturmanın gerçek amacının ne olduğunu açıklayabilir mi? Kesin olarak, bir hash'i ne için hesaplıyor?
nawK

-9

gizli anahtar temelde oturumdaki verileri şifrelemek için kullanılır


8
Hayır, değil. 6 yıl önce kabul edilen cevaba bakın.
Quentin
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.