写在前面:合法学习边界
本文讲解越权访问和 IDOR(Insecure Direct Object Reference)。所有测试都必须在自建靶场或明确授权环境中进行。请不要对真实系统进行改 ID、越权读取、越权修改或未授权枚举。
一、什么是越权访问
越权访问的核心是:系统没有正确判断“这个用户能不能操作这个对象”。
常见类型有:
| |
二、IDOR 是什么
IDOR 就是“不安全的直接对象引用”。
当接口使用用户可控的对象标识时,如果服务端没有再次校验归属关系,就可能出现问题。
典型接口:
| |
如果 123 这个订单不属于当前用户,但系统仍然返回,就可能是 IDOR。
三、常见触发点
| |
这些 ID 如果直接来自 URL 或参数,都要重点检查授权。
四、为什么前端不够
前端隐藏按钮、隐藏菜单并不等于安全。真正有效的授权判断必须在服务端完成。
前端只做展示,后端才做控制。
五、如何发现
典型验证方法:
| |
但必须强调:这些步骤只能在授权范围内做。
影响与危害
越权/IDOR 能造成:
| |
风险等级:高。
六、防御方法
1. 服务端对象级鉴权
每次访问对象前,都检查归属关系。
2. 对象 ID 不可枚举
避免连续、可预测、可遍历的 ID。
3. 最小权限
只给当前用户最小可见集合。
4. 角色与资源绑定
用户角色和可访问资源要绑定检查。
5. 审计日志
记录越权尝试、失败访问和异常对象请求。
修复
| |
七、报告中的正确写法
示例:
| |
八、小结
越权和 IDOR 的本质不是“会不会改 URL”,而是“后端有没有真正校验归属”。它是 Web 安全里最基础也最容易被忽视的一类问题。