security - 在 URL 中使用 ID(来自 mongo 的 ObjectId)是否安全?

标签 security url mongodb

最近有人告诉我,在 URL 中使用 mongodb _id 字段是不安全的。我想知道这是不是真的。

我的网站仅限于注册用户,每个用户都有他们的 URL 端点,其中包含来自 mongo 的 id。这是典型的 mongodb _id 字段 - 一个 SHA1。 AFAIK,id 是不可猜测的,即使有人点击了别人的 id,我的应用程序中基于 session 的身份验证也不允许访问。除了应用程序本身之外,没有人可以直接访问数据库。

我很想知道我是否缺少任何东西。

编辑:澄清的问题。 (mongodb ObjectID 不是 SHA1)

最佳答案

MongoDB 中的

_id 字段(默认情况下)为 ObjectID 类型.它不是 SHA1。

它的字符串表示形式(如 4ed7cbfd1d96406ca0000015 肯定是 URL 安全的。我在任何地方都使用它。

我的意思是,在您放置常规 int 标识符(/products/3/users/42 或其他任何内容)的任何地方公开它都是安全的。

在您的网站上,您应该检查用户是否已登录以及他是否有权访问给定的 URL。您不应该盲目地允许用户访问其中包含 ObjectID 的 URL,仅仅因为它们 (id) 不容易猜到(虽然它们比 SHA1 更容易)

关于security - 在 URL 中使用 ID(来自 mongo 的 ObjectId)是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561485/

相关文章:

java - 什么可以防止 HttpSession 的 id 被盗用?

java - 使用 jbcrypt 时性能可变且性能下降

c# - 如何检查本地URL是否可访问

mysql - 具有最佳插入/秒性能的数据库?

mongodb - 使用更新操作将字段转换为数组

关于标签 "access-denied-page"cvc-complex-type.3.2.2 : Attribute 'access-denied-page' is not allowed to appear 的 spring 安全警告

java - 如何通过 ftp url 下载/读取 html 文件?

javascript - 如何在 Javascript 或 jQuery 中获取查询字符串参数?

mongodb - 无法从 Spring Boot 应用程序连接到 Cosmos Db Mongo Api

PHP MySQL 注入(inject)