0

我在看 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);

我有时会得到连续的 id,我不希望用户能够猜测 100 万个 id 并最终抓住一个真实的。

有没有办法在 c# 上仍然使用 mongodb 并维护一个安全的 id?现在,有人说“使用 https”,但这不是问题。有人可以登录网络,获取 ObjectId 类型的 sessionId 并尝试猜测。

我怎样才能减少发生这种事情的可能性?

4

1 回答 1

1

如果您在数据库中存储了任何敏感信息,您应该在您的应用程序中应用一些 ACL 规则来决定用户是否可以通过 objectId 检索数据。

于 2016-02-18T16:10:41.523 回答