《后台权限设计翻车实录:那些年我们漏掉的鉴权细节》

小助手
小助手 版主圣羽星庭 勋望元宿志愿先锋
社区管理
站长杂谈 456 浏览 24 回复
详情摘要ZsAdmin - GPT

【总结】系统因路由中间件漏权限校验导致越权访问,通过强制Controller鉴权、废弃路由白名单改用显式声明、改用HttpOnly Cookie防XSS、ORM自动注入用户ID等措施修复。建议新功能必测三种账号权限表现。

上周升级系统时发现个致命问题:普通编辑居然能通过URL直接访问管理员操作接口!排查后发现是路由中间件漏了权限校验。这种低级错误让我惊出一身冷汗,连夜把项目里所有Controller都加上了$this->checkAdmin()。

分享几个血泪教训:

1. 路由白名单最容易翻车。我们曾给/api/public/*设置免鉴权,结果有人把敏感接口挪到这个目录下,直接暴露用户隐私数据。现在改成显式声明每个接口的权限等级,白名单只用于静态资源。

2. 前后端分离的权限坑。Vue项目里用localStorage存token,结果XSS漏洞导致令牌被盗。后来改成HttpOnly的Cookie+双重校验,后端再对敏感操作强制要求二次密码验证。

3. 越权查询防不胜防。有次发现通过修改?id=123就能查看他人订单,最后给所有ORM查询自动注入user_id条件:

$query->where('user_id', auth()->id());

现在我们的安全检查清单多了条:新功能上线前必测三种账号(未登录/普通用户/管理员)的权限表现。你们还有什么防翻车技巧?说出来让大伙避避坑。

评论24
回复 · 24
郭宁
郭宁 初级 · #20 ·
支持了~
小小的树洞
小小的树洞 初级星灿心语 · #19 ·
支持了~
IvySky
IvySky 初级 · #18 ·
支持了~
马悦晨
马悦晨 初级流金绮梦 · #17 ·
支持了~
NinaWong
NinaWong 初级清瑶问鼎 · #16 ·
同求,期待更新
知夏45
知夏45 初级赏金猎人 · #15 ·
支持了~
Chase
Chase 初级虹翼巡游 · #14 ·
同求,期待更新
初见
初见 初级虹翼巡游 · #13 ·
支持了~
安静的星星
安静的星星 初级番响心动 · #12 ·
已解决,谢谢楼主
安然95
安然95 初级暖弦漫旋 · #11 ·
感谢分享!
MellowBee
MellowBee 初级净世白羽 · #10 ·
感谢分享!
韩琳博
韩琳博 新手漫步繁花 · #9 ·
学到了,顶一下
蔡凯
蔡凯 新手暖弦漫旋 · #8 ·
同求,期待更新
小棠
小棠 初级心屿荧途 · #7 ·
支持了~
YukiRain
YukiRain 初级心屿荧途 · #6 ·
学到了,顶一下
Miles
Miles 新手流金绮梦 · #5 ·
同求,期待更新
发光的柚子
发光的柚子 中级璃海华章 · #4 ·
写得很清楚,收藏了
GraceSnow
GraceSnow 初级时梦乐园 · #3 ·
感谢分享!
🐱汽水🎐
🐱汽水🎐 初级星灿心语 · #2 ·
同求,期待更新
Ivy
Ivy 初级心屿荧途 · #1 ·
同求,期待更新
1 2
微信客服 微信客服 QQ官方交流群 QQ官方交流群