亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

快速會話中間件中的秘密的目的是什么?

快速會話中間件中的秘密的目的是什么?

炎炎設計 2023-07-06 11:03:56
我正在閱讀快速會話自述文件,其中講述了這個秘密:這是用于簽署會話 ID cookie 的秘密。[...]使用無法猜測的秘密將降低劫持會話的能力,僅猜測會話 ID(由 genid 選項確定)。https://github.com/expressjs/session#secrettbh:我不太明白。我認為秘密的目的是與會話 ID 一起用作某種哈希函數的參數,以生成簽名(如hash(secret, sessionID) => signature),并將該簽名附加到 cookie 中的會話 ID 值上。因此,如果有人猜到了正確的會話 ID,它仍然無法工作,因為簽名不匹配?這個秘密實際上是用來做什么的?
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

當出現這樣的問題時,通常最好只是查看源代碼并了解如何使用秘密。這是使用開源代碼的優點之一。

這允許會話代碼檢測 cookie 值是否已被篡改,或者它是否仍然是服務器上最初設置的真實值,并且使它們更難在暴力會話攻擊中“猜測”。


這是防止黑客編造自己的 cookie 值或修改 cookie 值的一種方法,因為只有使用適當密鑰簽名的值才會被測試為有效。

簽名過程還有一個附帶的好處,即它使值變得更長并且看起來有些隨機,因此它掩蓋了潛在的值,使其更難以猜測。經典的例子是,如果底層會話 ID 只是一個單調遞增的數字,那么很容易猜測未來或之前的會話值。但是,一旦被簽名,它就不再看起來像一個簡單的單調遞增數字,并且不容易猜測過去或未來的簽名會話值。盡管express-session使用24字節uid作為其會話id,但在對其進行簽名時,該值會延伸到非常非常長,這使得猜測和找到有效會話變得更加困難(我查看的簽名cookie值是80字節長(經過一些編碼)。

查看完整回答
反對 回復 2023-07-06
  • 1 回答
  • 0 關注
  • 92 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號