暴露用户唯一的MongoDB _id是否存在安全风险?

在我的web应用程序中,我将用户的数据存储在MongoDB文档中。 这些具有独特的_id属性。 要检索与用户创build的项目相关联的上传,我已经创build了以下API:

 /api/uploads/:user_id/:item_id/:fileName 

在后端,我只是返回文件位置/uploads/<user_id>/<item_id>/<fileName>

虽然项目logging本身将具有唯一的ID,但是此文件夹结构将使其更清洁,以删除与一个用户关联的所有项目,因为我可以简单地删除整个名为<user_id>文件夹。

然而,通过这种方式,我清楚地将用户的唯一_id暴露给所有访问其公开上传的人。

现在我的问题是,有什么方法可能会造成安全风险? 恶意黑客用一个用户的唯一ID做什么?

我不认为这是一个重大的风险。 在概念上,您提供的任何信息都可以被黑客用于恶意目的。 _id没有什么特别的特殊之处,使得它比其他任何事情都更有风险。

无论您在url中input什么内容,您都需要确保执行适当的访问控制并确保可用性等。