越权漏洞指服务端只认证不鉴权:验证了"你是谁"却没校验"你能不能访问这个资源"。水平越权是访问同级别其他用户的数据(改 /api/order/123 里的 ID 看别人订单,即 IDOR),垂直越权是普通用户调用管理员接口。它在 OWASP Top 10 2021 中对应失效的访问控制(A01),稳居榜首。
根因是把资源标识当作权限凭证。系统性防御:1)默认拒绝,每个接口显式做对象级权限校验——查询必须带上属主条件:WHERE id = ? AND user_id = ?,而不是查出后再比对;2)优先使用间接引用(不可猜测的 UUID 只能减少被遍历的概率,不能替代鉴权);3)在统一中间件/框架层做鉴权(如基于 ABAC/RBAC 的策略点),避免每个开发者手写散落校验;4)管理接口与普通接口物理隔离;5)自动化测试覆盖越权用例:用 A 的凭证访问 B 的资源应返回 403/404。
易错点:前端隐藏按钮不等于权限控制;只校验"是否登录"的网关不等于对象级鉴权。追问方向:水平越权如何自动化发现、多租户隔离方案。