2016-09-09 2 views
2

mongodbによって生成されたIDはすべてのドキュメントで一意ですが、それはクライアントに公開される危険性がありますか?私はID 12345676543を持つユーザ名Jamesを持っているように、それは私が危険がないと思いますmongodbとセキュリティのIDを公開する

example.com/user/update/id?12345676543

+1

誰もがあなたの 'facebook-id'を知っています。 – Rayon

+0

コンテキストによって異なります。あなたはそれを行うことができますが、そのIDのユースケースは何ですか?あなたはデータベース内の識別のためにそれを使用しているのですか、あるいは何らかのセキュリティ鍵としても使用していますか?あなたの本能に従ってください、彼らはおそらく正しいです。 – Randy

+0

mongodbの_idを使うと@Rayonは繰り返し可能なIDがありますか?何百万人のユーザーがいる場合はどうなりますか? – dfox

答えて

0

のようなURLに公開するのが賢明ですmongodbをクライアントに技術的に公開しました。 しかし、あなたは、ユーザーいつのIDを変更する必要がある場合、自動でIDを生成して、それは非常に困難になりますいくつかのシナリオ...

  1. を考慮することができます。

  2. idのタイプを変更する必要があります。たとえば、intまたはstringです。

  3. 珍しいかもしれませんが、可能です。他のデータベースシステムに移行する必要があるかもしれません。

だから、私は自分でクライアントのIDを教えるほうがいいと思う。深く考えると、mongodbの_idは、ユーザーではなくドキュメントの一意のIDを示します。

+0

文書の一意のIDは何を意味しますか? – dfox

+0

一般に、MongoDBのコレクションにはドキュメントが含まれています。コレクションにはスキーマがないため、異なるスキーマを持つドキュメントを持つことができます。すべてのドキュメントには、コレクションに固有の一意のID(_id)があります。文書特有のものであり、文書 – gypsyCoder

+0

の内容ではないので、 'users'コレクションと' orders'コレクションがあれば '_ids'が衝突する可能性があります。 – dfox

関連する問題