一个OWASP 说明建议直接对象引用在某些情况下被认为是不安全的。他们将“直接对象引用”定义如下:
“当开发人员将对内部实现对象(例如文件、目录、数据库记录或键)的引用公开为 URL 或表单参数时,就会发生直接对象引用。”
有人建议解决这个问题:
对象引用映射首先由临时存储在会话中的授权值列表填充。当用户请求一个字段(例如:color=654321)时,应用程序会从会话中查找此映射以确定适当的列名。如果该有限映射中不存在该值,则用户未被授权。参考地图不应该是全局的(即包括所有可能的值),它们是临时地图/字典,只填充了授权值。
但是,其他人在 Wiki 上争辩说,DOR 仅对文件、目录确实不安全。那个人补充说:
在真正的企业或企业后系统中,实际上没有办法对所有数据库主键进行 DOR。
我的问题是,对数据库主键的直接对象引用有多不安全?你能提供漏洞的具体例子吗?人们多久(如第一人所建议的那样)不遗余力地屏蔽所有数据库键?