想象一下:你用酒店房卡刷开自己的房间,却无意发现也能打开隔离客房——这就是“横向越权漏洞”!用户A能偷看用户B的隐私数据,甚至篡改订单、盗取信息。今天,我们就用真实代码和案例,拆解这个“隐形杀手”的攻防之道!
一、什么是横向越权?举个🌰
假设某医疗系统的病历查询接口如下:
https://hospital.com/record?patient_id=1001
如果用户A(自己ID是1001)手动修改URL为patient_id=1002
,就能看到用户B的病历!这就是典型的横向越权漏洞。
✅ 漏洞本质:
- 后端未校验“请求者身份”与“数据归属者”是否一致;
- 攻击成本极低,只需修改参数即可绕过权限控制。
二、漏洞复现:从代码到攻击
漏洞代码示例(Python Flask)
@app.route('/get_order')
def get_order():
order_id = request.args.get('order_id')
# 直接根据order_id查询数据库,未校验用户身份!
order = db