簡體   English   中英

MongoDB ObjectID對於會話ID是安全的

[英]MongoDB ObjectID safe for session id

我正在為Happstack服務器制作會話系統,並使用mongoDB進行持久存儲。 我想知道MongoDB ObjectID是否可以安全地用作會話ID。

一般來說,MongoDB ObjectID在全局范圍內是唯一的,因此如果您擔心發生沖突,則是安全的。

但是,如果您正在談論會話ID,那么問題實際上取決於您是否在客戶端對其進行加密以及如何對其進行加密。 通常,這些問題的答案應該是“ 是”,並且作為對客戶端不透明的加密cookie值 通常,您使用的任何Web服務器都將提供實用程序來幫助您解決此問題。

同樣,如果您只是想確保自己具有唯一的ID,並且想將對象ID用作源,那很好。

MongoDB ObjectID的長度恰好為12個字節[1],而Session ID可能實現為32個字節[2]長。 區別在於,如果攻擊者使用的是MongoDB ObjectID,則攻擊者更容易猜出您的Session ID,但是您的會話安全性通常並不僅僅依賴於難以猜測的Session ID。

盡管如此,還是有人建議會話ID的長度至少應超過16個字節[3]。 在這種情況下,原始的MongoDB ObjectID對於會話ID是不安全的。

[1]。 https://godoc.org/labix.org/v2/mgo/bson#ObjectId [2]。 https://astaxie.gitbooks.io/build-web-application-with-golang/content/zh/06.2.html [3]。 https://www.owasp.org/index.php/Session_Management_Cheat_Sheet

切勿使用MongoDB ObjectID作為會話標識符!

這很容易猜測,您可以接管某人的會話。 您只需要等待,直到有人登錄並輕松破解他的會話ID。

我已經在這篇文章中寫過關於這種漏洞的文章: https : //medium.com/securing/why-is-randomness-important-especially-in-the-world-of-cryptocurrencies-part-1-ebd3343c7b55

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM