8

mongoDBでボードを作ろうとしています。

ObjectID でドキュメント ID を割り当てたい。

ユーザーが http://www.example.com/4easdf123123でドキュメント ページにアクセスできる場合、「4easdf123123」は mongoDB ObjectID です。

URL で mongo ObjectID を使用して表示し、それをドキュメント ID として使用すると、セキュリティ上の脅威の可能性はありますか?

また、mongoDB でドキュメント ID を割り当てることに関する提案はありますか?

4

1 に答える 1

8

これはMongoDBObjectIDのようには見えません。ObjectIDは12バイトのバイナリデータであり、16進文字列(URLで使用する通常の方法)としてレンダリングすると、24文字の長さになります。公式のPHPMongoドライバーを使用していると仮定します。その場合、MongoIdクラスのコンストラクターは無効な値を無視し、新しい値を生成します。いずれにせよ、ドライバーにObjectID /MongoIdを生成させるのが最善です。これは、衝突を回避する方法で生成するためです。

URLでの使用の安全性については、問題ないはずです。もちろん、コードの実装に関する通常の予防措置を使用して、現在のユーザーが表示されているオブジェクトなどを表示できるようにする必要がありますが、URLでObjectIDを使用することによるセキュリティ上のリスクは他のデータベース識別子(文字列)よりも高くありません。 、整数など)、ObjectIDには意味値がないため、多くの場合は少なくなります(URLの「adminuser」のような文字列は、そのURLが昇格された特権を持つユーザーに関連していることを伝える場合があります)。

于 2011-08-16T01:50:00.077 に答える