2017-08-15 1 views
0

Wäre es eine gute Übung, die von Mungoose generierte ObjectId zu verwenden, um zu überprüfen, ob Daten zu einem bestimmten Benutzer gehören? sudo Codeusing mongoos ObjectId für die Autorisierung

Beispiel:

Beispiel in db:

[ObjectId]: { 
    myStuff: 'foo' 
} 

Beispiel Überprüfung Zulassung:

if (jwt.bar.ObjectId === ObjectId) { 
    //then you can mod this data because it is yours 
} 

Wenn nicht, was ist ein empfohlene Weg, dies zu nähern?

+0

Mögliches Duplikat von [MongoDB ObjectID sicher für Sitzungs-ID] (https://stackoverflow.com/questions/37263985/mongodb-objectid-safe-for-session-id) – Fabien

Antwort

1

Sie können die ObjectID nicht als Sitzungskennung verwenden, da sie nie erneuert wird, nachdem das Dokument erstellt wurde, und es ist vorhersehbar.

Von MongoDB Documentation:

Der 12-Byte-ObjectId Wert besteht aus:

einen 4-Byte-Wert der Sekunden seit der Epoche Unix darstellt,

eine 3-Byte-Gerätekennung,

eine 2-Byte-Prozess-ID,

und ein 3-Byte-Zähler, s Tarting mit einem zufälligen Wert.

Aus Sicherheitsgründen wäre es eine schlechte Übung.

Verwenden Sie richtige Sitzungs-IDs, um Anfragen von Benutzern zu identifizieren.

+0

@ thanks. Wäre es eine gute Idee, etwas wie NPMs 'uniqid' zu verwenden, um eine UID zu generieren, und sie dann unter einem Benutzerprofil zu speichern, um sie für den gleichen Vorschlag zu verwenden? – hunterInt

Verwandte Themen