gpt4 book ai didi

mongodb - 如果我将 bson ID 放在 url 中,我是否会暴露敏感数据?

转载 作者:IT老高 更新时间:2023-10-28 13:13:17 27 4
gpt4 key购买 nike

假设我的 Mongodb 中有一个 Products 数组。我希望用户能够在自己的页面上看到每个产品:http://www.mysite.com/product/12345/Widget-Wodget。由于每个产品都没有增量整数 ID (12345),而是具有 BSON ID (5063a36bdeb13f7505000630),因此我需要添加整数 ID 或使用 BSON ID。

由于 BSON ID 包含 PID:

  • 4 字节时间戳,
  • 3 字节机器标识符,
  • 2 字节进程 ID,
  • 3 字节计数器。

如果我在我的网址中使用 BSON ID,我是否会将安全信息暴露给外界?

最佳答案

我想不出在你的机器上获得特权有什么用,但是在任何地方使用 ObjectIds 仍然会泄露很多信息。

通过抓取您的网站,您可以:

  • 找出一些隐藏的对象:例如,如果计数器部分在时间 t1 和 t2 之间从 0x....b1 变为 0x....b9,则可以在这些倒数中猜测 ObjectId。但是,如果您强制执行访问权限,猜测 id 很可能毫无用处
  • 了解每个用户的注册日期(不是非常敏感的信息,但总比没有好)
  • 从员工创建的对象的时间戳中推断出实际(而非公开的)营业时间
  • 根据用户生成对象的时间戳推断您的受众居住在哪个时区:如果您的网站是人们在午餐时间最常使用的网站,那么可以测量 ObjectIds 的峰值并推断 UTC 晚上 8 点的峰值意味着受众在美国西海岸
  • 更一般地说,通过抓取您网站的大部分内容,您可以构建您的服务成功的时间表,在任何给定时间了解:您的用户数量、用户参与度、您拥有多少台服务器,您的服务器多久重新启动一次。周末发生的 PID 更改更有可能发生崩溃,而工作日发生的更可能发生崩溃 + 软件修订
  • 并可能找到特定于您的业务流程和领域的其他信息

公平地说,即使是随机的 id,也可以推断出很多东西。主要问题是您需要防止任何人抓取您网站的具有统计意义的部分。但如果有人下定决心,他们最终会成功,这就是为什么向他们提供所有这些额外的时间戳信息似乎是错误的。

关于mongodb - 如果我将 bson ID 放在 url 中,我是否会暴露敏感数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13729151/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com