首页/安全/漏洞与攻击面速查/越权访问(IDOR)原理与防护
Web 漏洞原理与防护55 条

越权访问(IDOR)原理与防护

IDOR 指接口用直接对象标识(如 order_id=123)查询数据但不校验归属,导致水平越权读取或修改他人数据;防护原则是每个数据访问都做主体与资源的归属校验。

漏洞与攻击面速查安全更新于 2026-10-12

风险与修复对比

风险与修复对比
风险:/api/orders/12345 仅按 id 查询,未校验归属
修复:查询条件强制带归属:
SELECT * FROM orders WHERE id = ? AND user_id = ?
或在访问前显式执行权限判断

排查清单

排查清单
遍历接口中的资源 ID 参数(订单、发票、文件、地址…)
确认每个读写点都有归属校验
批量接口、导出接口同样覆盖
越权测试:用 A 账号访问 B 账号资源(授权测试范围内)
前端隐藏入口不构成防护:直接请求接口即可绕过,权限判断必须在服务端。

易错点

  • 只防读不防写:修改与删除接口的越权后果更严重,要逐个确认
  • 认为换成 UUID 就安全:缺归属校验时任何 ID 形式都挡不住越权

数据来源与参考

  • OWASP Top 10 A01(失效的访问控制)
  • OWASP WSTG IDOR 测试章节
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌