我正在尝试用 mongoDB 制作一个板。
我想用 ObjectID 分配文档 ID。
如果用户可以通过以下方式访问文档页面http://www.example.com/4easdf123123其中“4easdf123123”是 mongoDB ObjectID。
如果我在 URL 中使用并显示 mongo ObjectID 并将其用作文档 ID,是否存在任何可能的安全威胁?
对于使用 mongoDB 分配文档 ID 有什么建议吗?
这看起来不像 MongoDB ObjectID —— ObjectID 是 12 字节的二进制数据,当呈现为十六进制字符串(在 URL 中使用它的常用方法)时,它将是 24 个字符长。我假设你正在使用官方 PHP Mongo 驱动程序,在这种情况下MongoId
类的构造函数将忽略无效值并为您生成一个新值。无论如何,最好让驱动程序生成一个 ObjectID/MongoId
为您服务,因为它会以避免碰撞的方式这样做。
至于在 URL 中使用它的安全性,应该没问题。当然,您应该使用有关实现代码的常见预防措施来确保当前用户有权查看正在显示的对象等,但是在 URL 中使用 ObjectID 并不比任何其他数据库标识符(字符串、整数等),而且通常更少,因为 ObjectID 没有语义值(而 URL 中的“adminuser”等字符串可能表明该 URL 与具有提升权限的用户相关)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)