Node.js 公开用户';谁是唯一的MongoDB\u id?
在我的web应用程序中,我将用户数据存储在MongoDB文档中。它们具有唯一的Node.js 公开用户';谁是唯一的MongoDB\u id?,node.js,mongodb,security,Node.js,Mongodb,Security,在我的web应用程序中,我将用户数据存储在MongoDB文档中。它们具有唯一的\u id属性。为了检索与用户创建的项目相关联的上载,我创建了以下API: /api/uploads/:user_id/:item_id/:fileName 在后端,我只需返回位于/uploads// 虽然项目记录本身将具有唯一的ID,但此文件夹结构将使删除与一个用户关联的所有项目变得更干净,因为我可以简单地删除名为的整个文件夹 然而,通过这种方式设置,我清楚地将用户的唯一id公开给所有访问其公共上传的人 现在我的问
\u id
属性。为了检索与用户创建的项目相关联的上载,我创建了以下API:
/api/uploads/:user_id/:item_id/:fileName
在后端,我只需返回位于/uploads//
虽然项目记录本身将具有唯一的ID,但此文件夹结构将使删除与一个用户关联的所有项目变得更干净,因为我可以简单地删除名为
的整个文件夹
然而,通过这种方式设置,我清楚地将用户的唯一id公开给所有访问其公共上传的人
现在我的问题是,这是否会带来安全风险?恶意黑客可以用用户的唯一id做什么?我不认为这是一个重大风险。从概念上讲,黑客可以利用您提供的任何信息进行恶意攻击。没有什么特别的关于_id的,这使得它比你可能放在那里的任何东西更危险
无论您在URL中输入了什么,您都需要确保实施正确的访问控制并确保可用性等。使用
ObjectId
需要注意的一点是,它们包含(它们不是随机的,也不是简单的顺序),尽管这通常不是问题。