Verwenden der Mongodb ObjectID als Dokument-ID?

8

Ich versuche ein Board mit mongoDB zu erstellen.

Ich möchte Dokument ID mit ObjectID zuweisen.

Wenn ein Benutzer von Ссылка auf eine Dokumentseite zugreifen kann, ist "4easdf123123" eine mongoDB-Objekt-ID.

Gibt es eine mögliche Sicherheitsbedrohung, wenn ich mongo ObjectID in der URL verwende und zeige und sie als Dokument-ID verwende?

Und irgendeinen Vorschlag mit Dokument-ID mit mongoDB zuweisen?

    
InspiredJW 16.08.2011, 01:32
quelle

1 Antwort

8

Das sieht nicht wie eine MongoDB ObjectID aus - eine ObjectID besteht aus 12 Bytes binärer Daten, und wenn sie als hexadezimale Zeichenfolge gerendert wird (die übliche Art, sie in einer URL zu verwenden), wäre sie 24 Zeichen lang. Ich nehme an, dass Sie den offiziellen PHP Mongo Driver verwenden, in diesem Fall die Klasse MongoId Konstruktor ignoriert ungültige Werte und generiert einen neuen für Sie. In jedem Fall ist es am besten, wenn der Treiber eine ObjectID / MongoId für Sie generiert, da dies Kollisionen vermeidet.

Wie für die Sicherheit der Verwendung in Ihren URLs sollten Sie in Ordnung sein. Sie sollten natürlich die üblichen Vorkehrungen zur Implementierung von Code treffen, um sicherzustellen, dass der aktuelle Benutzer Zugriff auf das angezeigte Objekt hat, usw., aber es besteht kein Sicherheitsrisiko mehr bei der Verwendung einer ObjectID in der URL als bei jeder anderen Datenbankkennung (String) , Integer usw.), und oft gibt es weniger, da die ObjectID keinen semantischen Wert hat (während eine Zeichenfolge wie "adminuser" in einer URL angeben könnte, dass sich diese URL auf einen Benutzer mit erhöhten Rechten bezieht).

    
dcrosta 16.08.2011, 01:50
quelle

Tags und Links