2012-02-26 41 views
9

我正在設計一個與MongoDB交互的API。Mongo ObjectIDs:在野外使用安全嗎?

現在的問題是,如果是安全使用原始對象ID來查詢對象等直接使用的OID(如在查詢中)可能出現的任何安全問題,或者我應該加密/解密後,他們他們離開我的服務器環境?

回答

10

看看BSON對象ID規範here,你會知道如果它是安全的,你可以使用

如果您試圖防止用戶從腳本(fuskators)發送不同的URL,那麼它對我來說似乎具有較弱的安全性。不會有太多的'機器','PID'部分組合。如果攻擊者知道數據是如何插入的(特別是如果使用批次),則可以計算'時間'部分。 'inc' - 非常弱。

我不會信任ObjectID作爲唯一的安全性。

請注意,一般來說,「安全」這個問題是無法正確回答的。你必須自己決定。

PS。但請記住,當用戶分享他們訪問的URL時,這種基於URL的安全性將會變得灰暗。即使最好的加密也無濟於事。

2

我覺得如果你不共享對象id,那麼安全並不是很安全,因爲一個可能的攻擊者會知道一個可能的安全問題,也可能使用強力攻擊或其他方法來獲取對象ID。

最終this question也可以幫助你。