【问题标题】:is it safe to use base64 encoding of mongdb object id in API endpoint?在 API 端点中使用 mongodb 对象 ID 的 base64 编码是否安全?
【发布时间】:2020-09-26 21:52:41
【问题描述】:

在 Go 中使用 Mongodb 作为数据库开发 API,并希望通过 URL 中指定的 ID(例如 /students/5ed2176bc645348af0dc60d3)返回数据库中的特定学生。在 API 端点中使用 mongodb 对象 ID 的 base64 编码是否安全?例如,

给定数据库map[_id:ObjectID("5ed2176bc645348af0dc60d3") student:bob] 中的一个文档,使用base64 标准编码对“5ed2176bc645348af0dc60d3”进行编码,然后将此编码用作URL。当有人点击 URL 时,对其进行解码,然后通过对象 id 获取对应的文档

这是否有任何优点和缺点,或者是否有更好的方法不必在 API 端点中公开对象 ID?

【问题讨论】:

  • Base64 与纯文本一样安全。如果您不介意以纯文本形式发送数据,那么 Base64 就可以了。

标签: mongodb api go encoding base64


【解决方案1】:

base64 编码可以简单地反转。如果有人决定弄清楚您的 API 是如何工作的,他们将花费不到一分钟的时间来取回 ID。

【讨论】:

  • 有什么好的策略不必在 API 中公开对象 ID?
  • 通过某个 ID 检索文档,以便我可以在包含该 ID 的特定 url 显示该文档中的信息,我认为我可以使用对象 ID,因为它已经是唯一的 ID 而不是生成新的
  • 可以,但这和base64编码有什么关系?
  • 认为对它进行编码是安全的,但你回答了它可以被解码的问题,谢谢,我想我可以在我的 API 端点 url 的 mongo 文档中使用相同的对象 ID
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-30
  • 1970-01-01
  • 2020-07-26
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
  • 2018-10-25
相关资源
最近更新 更多