2016-09-09 36 views
2

mongodb生成的id在您的所有文檔中都是唯一的,將此信息暴露給客戶端的風險是什麼?像我有一個用戶名James ID爲12345676543,是明智的做法是把它暴露在URL像公開mongodb和安全性的ID

example.com/user/update/id?12345676543

+1

大家都知道你的'facebook-id',這是否有害? – Rayon

+0

取決於上下文。你可以這樣做,但那個ID的用例是什麼?你只是用它在數據庫中進行識別,或者作爲一些安全密鑰?按照你的直覺,他們可能是對的。 – Randy

+0

@Rayon會有一個可重複的ID,如果我使用_id mongodb?如果我有一百萬用戶呢? – dfox

回答

0

,我認爲是沒有風險的從技術上向客戶展示mongodb gererated id。 但是你可以考慮一些場景...

  1. 如果您需要更改用戶隨時隨地的ID那麼這將是非常困難的自動生成的ID。

  2. 您可能需要更改ID的類型。例如,int或字符串。

  3. 罕見,但可能的情況。您可能需要遷移到其他數據庫系統。

所以,我認爲最好自己生成客戶端ID。再次,如果您深入思考,mongodb中的_id表示文檔而不是用戶的唯一標識。

+0

文件的唯一標識代表什麼? – dfox

+0

通常,MongoDB中的一個集合包含文檔。由於集合沒有模式,它可以具有不同模式的文檔。每個文檔都有一個特定於該集合的唯一ID(_id)。它是文檔特定的,而不是文檔 – gypsyCoder

+0

的內容,所以如果我有'users'集合和'orders'集合,'_ids'可能會碰撞。 – dfox