Я наблюдал за объектом Mongodb ObjectId. Кажется, это небезопасный объект для моего клиента (даже его собственный SessionId). Хотя я использую следующий код для генерации случайных ObjectId:
var timestamp = DateTime.UtcNow;
var machine = _random.Next(10000, 75757575);
var pid = (short)_random.Next(10000, 75757575);
var increment = _random.Next(10000, 75757575);
return new ObjectId(timestamp, machine, pid, increment);
Иногда я получаю последовательные идентификаторы, и я не хочу, чтобы пользователь мог угадать 1 миллион идентификаторов и, наконец, поймал настоящий.
Есть ли способ по-прежнему использовать mongodb на С# и поддерживать безопасный идентификатор? Теперь некоторые говорят «используйте https», но это не проблема. Кто-то может войти в сеть, получить идентификатор сеанса типа ObjectId и попытаться угадать.
Как я могу уменьшить вероятность того, что что-то подобное произойдет?