Mongodb 在API端点中使用mongdb对象id的base64编码安全吗?

Mongodb 在API端点中使用mongdb对象id的base64编码安全吗?,mongodb,api,go,encoding,base64,Mongodb,Api,Go,Encoding,Base64,使用Mongodb作为数据库开发API,并希望通过URL中指定的ID返回数据库中的特定学生(例如/students/5ed2176bc645348af0dc60d3)。在API端点中使用mongodb对象ID的base64编码是否安全?比如说, 给定数据库map[_id:ObjectID(“5ed2176bc645348af0dc60d3”)中的一个文档,学生:bob],使用base64标准编码对“5ed2176bc645348af0dc60d3”进行编码,然后将此编码用作URL。当有人点击UR

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

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


这会有什么优点和缺点,还是有更好的方法不必在API端点中公开对象ID?

base64编码可以简单地反转。如果有人决定弄清楚你的API是如何工作的,他们需要不到一分钟的时间才能取回ID。

有什么好的策略不必在API中公开对象ID吗?通过某个ID检索文档,这样我就可以在包含该ID的特定url上显示该文档中的信息,我想我可以使用对象ID,因为它已经是一个唯一的ID,而不是生成一个新的ID。你可以,但是这与base64编码有什么关系?我想编码它是安全的,但是你回答了一个问题,它可以被解码,谢谢,我想我可以在我的API端点URL中的mongo文档中使用相同的对象ID,因为base64编码不提供任何安全性。您还可以使用十六进制编码。ObjectId的四个字节是时间戳。通过API端点公开时间戳可能是个好主意,也可能不是个好主意。Base64与纯文本一样安全。如果您不介意以纯文本形式发送数据,那么Base64就可以了。