Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 公开用户';谁是唯一的MongoDB\u id?_Node.js_Mongodb_Security - Fatal编程技术网

Node.js 公开用户';谁是唯一的MongoDB\u id?

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公开给所有访问其公共上传的人 现在我的问

在我的web应用程序中,我将用户数据存储在MongoDB文档中。它们具有唯一的
\u id
属性。为了检索与用户创建的项目相关联的上载,我创建了以下API:

/api/uploads/:user_id/:item_id/:fileName
在后端,我只需返回位于
/uploads//

虽然项目记录本身将具有唯一的ID,但此文件夹结构将使删除与一个用户关联的所有项目变得更干净,因为我可以简单地删除名为
的整个文件夹

然而,通过这种方式设置,我清楚地将用户的唯一id公开给所有访问其公共上传的人


现在我的问题是,这是否会带来安全风险?恶意黑客可以用用户的唯一id做什么?

我不认为这是一个重大风险。从概念上讲,黑客可以利用您提供的任何信息进行恶意攻击。没有什么特别的关于_id的,这使得它比你可能放在那里的任何东西更危险


无论您在URL中输入了什么,您都需要确保实施正确的访问控制并确保可用性等。

使用
ObjectId
需要注意的一点是,它们包含(它们不是随机的,也不是简单的顺序),尽管这通常不是问题。