IDOR 缺的是什么?
应用按请求里的对象标识读写资源,却没有核对请求者是否有权执行该动作。关键缺陷在对象级授权。[1]
037 / Web 与应用 / IDOR
IDOR 越权访问 · IDOR
你已登录,也拿到了一个有效订单编号。但这笔订单属于别人。让服务器亲自回答:当前这个人,能对这个对象做这件事吗?
画面里的钥匙和储物柜是访问隐喻。能找到柜子,不代表有权打开它。
本课任务 / IDOR 越权访问
亲手探索 / 不同条件,不同结果
选择请求者和订单,再切换对象授权检查。比较“系统返回了什么”与“按业务规则应该允许什么”。只在本页虚构数据上操作。
对象授权实验
策略:仅订单所有者可以读取。改变请求对象,再观察服务端是否真正检查所有权。
尚未运行。先调整实验条件,再查看结果;这里不会连接真实系统。
再试一次:先读自己的订单,再换成别人的订单。相同的 200 状态,在授权正确与越权时意味着什么?
OWASP:IDOR 与对象级授权(新窗口)随手查 / 把理解带回实际工作
实验是简化模型。真实环境需要明确业务规则、验证失败路径,并持续维护配置与证据。
01 / 实用细节
先明确主体、对象、动作和业务关系。这个练习只采用“本人读取本人订单”的规则;真实系统还可能有团队、租户、委托与管理员权限,需逐项定义。[2]
02 / 实用细节
不要把客户端传来的 user_id 当作已验证身份。服务端从可信会话得到主体,再把查询限定在该主体有权访问的对象集合内。[1]
03 / 实用细节
页面按钮、接口、批量导出和后台任务可能是不同入口。授权不能只放在前端,也不能只覆盖读取而漏掉修改、删除或下载。[2]
04 / 实用细节
未匹配到允许规则时应拒绝访问。处理授权异常时也应保留边界,不能因策略服务出错而向所有人放行。[2]
05 / 实用细节
在获准测试环境创建 A、B 两个账户及各自资源。验证自己的正常操作,再交换已知对象标识,检查跨账户和跨租户请求是否被拒绝。[1]
06 / 实用细节
一次测试既要检查返回状态,也要检查响应正文和实际副作用。对于存在性泄漏、错误提示和审计信息,按业务风险制定一致策略。[2]
从模拟,到验证
勾选用于本页自查,不会自动标记整课已学会。练习与清单刷新后重置。
本页已检查 0 / 5 项
小测结果同步错题本;“已学会”沿用原有本地学习记录。
对象引用、随机标识与权限检查
本页场景、人物与数据均为教学示例。互动选择不会上传;收藏、已学会与错题沿用当前浏览器本地存储。来源正文核对日期:2026-10-08。