用途:wrdn-authz 是一个面向代码变更的授权缺陷审查技能,定位为资深应用安全工程师视角,专门寻找“错误主体访问受保护资源、操作、租户、角色或范围”的授权类缺陷,即常见于漏洞报告与事故复盘的权限绕过问题。
主要能力:可识别 IDOR(按请求中的 ID 读取或修改资源而未校验主体权限)、缺少租户/组织范围过滤、角色或权限检查失败开放(未知角色返回真值或 None、缺少最终 return False、异常分支返回成功)、仅有 scope 检查而无所有权检查、批量赋值/过度提交(如 req.body 直接写入 ORM、DRF fields='all')、权限类只重写 has_permission 未重写 has_object_permission、强制浏览、受保护操作缺少授权守卫、水平与垂直越权、模拟登录端点缺少员工角色门禁、仅令牌 scope 泄漏到错误认证流程、未经验证的令牌或会话声明被用于授权决策等。
使用方式:先识别框架,再沿请求路径向上追踪中间件与路由级守卫,向下追踪数据查询是否按主体范围过滤,检查同一文件内相邻处理器的“负空间”差异,核对角色与权限常量,并用 git log -p、rg 等命令辅助验证。按需加载 references/ 下对应框架文档(sentry、getsentry、django、fastapi、flask、express、nestjs、nextjs、trpc、graphql、jwt、sessions)。报告时按 high/medium/low 分级,存疑时取较低级别并说明原因。
适用场景:审查涉及授权决策的代码变更,尤其是 Django/DRF、FastAPI、Flask、Express、NestJS、Next.js、tRPC、GraphQL 等栈,以及 Sentry、getsentry 相关代码。
限制:不报告注入、纯认证生命周期、加密原语、源码密钥、传输安全、通用卫生、CSRF、DoS、依赖 CVE 与代码风格问题,除非其直接导致授权绕过。需先排除全局中间件、反向代理认证、显式公开端点、继承的 get_queryset、只读序列化器、固定算法的 JWT 校验、主体派生 ID 等误报陷阱;无法用现有文件证实的线索应丢弃或降低置信度。