鉴权
3 篇文章
- 电商篇:安全——基于请求方法的访问控制绕过从「把 POST 改成 GET 就能提权」这个常见漏洞出发,解释授权层按 (路径, 方法) 匹配而执行层不看方法的病因,再拿电商项目的真实代码逐层核查:Connect 的 405、网关 Casbin 的默认拒绝、策略文件的通配陷阱、CSRF 豁免与 NO_SIDE_EFFECTS 的耦合。核查挖出一处真实缺口(审批 RPC 完全依赖网关),随后落地三道门禁:handler 内按动作授权、策略 act 列只认字面 POST、proto 标记进白名单,含回归测试与金丝雀验证。
- 把 admin=false 改成 true:拿自己的网关代码做一次攻防复盘从「改一个布尔值就能进后台」这个经典教学场景出发,先厘清所谓「截取请求」到底发生在哪一端,再逐层审计一套 Go 网关的真实代码——身份头剥离、不透明会话、RS256 验签、下游独立鉴权。四道防线都成立,却挖出两处可复现的真实漏洞:匿名购物访客 cookie 的横向越权,以及 OAuth 回调把「第 1 步校验过」当成保证而导致的会话 ID 外泄。含 PoC 输出、完整攻击链、已落地的修复与回归测试。
- 默认拒绝:别让前端流程替服务器做访问控制从「删除订单只检查 ID 是否存在」这个常见错误出发,整理一套可落地的服务端访问控制准则:默认拒绝、每个 HTTP 方法独立授权、资源归属检查、拒绝信任客户端参数、多步骤操作绑定、集中 IAM 与最小权限。