越权访问:水平与垂直越权的自查
发布时间:2026-02-16 10:53       
更新时间:2026-02-16 13:20
名字绕,道理不绕:水平越权是同级互看,张三能打开李四的订单;垂直越权是下级干上级的事,普通用户调用管理员接口。两类问题的共同点是系统不报错,静悄悄把数据递出去,等发现往往已经泄露。
一、改 ID 测试最直接
水平越权自查不用专门工具:注册两个测试账号 A 和 B,A 登录后把请求里的资源 ID 换成 B 的,比如 /api/orders/1001 改成 /api/orders/1002,响应若返回了 B 的数据,漏洞实锤。接口遍历一遍,订单、地址、票据、附件下载,凡是地址或参数里带资源 ID 的都测。垂直越权同样朴素:拿普通用户的令牌直接请求管理员接口,返回 403 才算合格,返回正常结果就是洞。内部系统的越权更值得警惕,攻击者手里往往握着真账号,不能默认登录进来的都是自己人。
二、权限矩阵当验收标准
测试要有底账。画一张矩阵表:行是角色(游客、普通用户、管理员),列是接口动作(读、写、删、导出),格子里标允许或拒绝。自查和回归都对着矩阵执行,新增接口先补矩阵再上线。删数据、批量导出这类高危动作,即便角色允许也加一层二次确认或限频,给误操作和被盗账号都留一道闸。校验必须落在服务端:前端隐藏按钮只是界面装饰,改不了请求,绕过前端直连接口是攻击者的基本功。
三、日志与告警兜底
越权探测有行为特征:同一账号高频更换资源 ID,403 与 404 混杂出现。在网关或应用日志里对这类模式设告警,阈值写实数,比如单账号五分钟内访问不同订单 ID 超过五十次即触发通知。告警要接到具体的人,没人接收的告警等于没配。日志字段要带全:账号、角色、资源 ID、动作、结果码,缺了字段,模式分析就做不起来。改 ID 的测试用例写成脚本放进回归集,每次发版自动跑一遍。
越权是同类漏洞里修复成本最低的一种,多数补一行归属校验就解决。把改 ID 测试纳入每次发版的自测清单,问题就堵在了上线之前。