Skip to content

如何使用 AI 对 Django 项目进行权限与 IDOR 安全审计

解决 Django 项目中常见的权限漏洞:通过引导 AI 深入分析代码的数据流向,确认“用户 A 是否能访问、修改或删除用户 B 的数据”,从而精准定位 IDOR(不安全直接对象引用)漏洞。

为什么需要这个技能

在 Django 或 Django REST Framework (DRF) 项目中,简单的登录校验(如 IsAuthenticated)并不等于拥有正确的权限。很多开发者会忘记在查询数据库时过滤用户 ID,导致攻击者只需修改 URL 中的主键 ID 就能访问他人的私有数据。

传统的静态扫描工具依赖于模式匹配,容易产生大量误报或漏报。本技能将 AI 的角色转变为一名“安全调查员”,要求它必须先理解项目的权限模型,通过追踪代码路径来证实漏洞的存在,而不是盲目猜测。

适用场景

  • 需要对 Django/DRF 的 View、ViewSet 或 ORM 查询进行安全审计时。
  • 在进行代码评审(Code Review)时,需要确认对象级权限(Object-level Authorization)是否完整。
  • 处理涉及多租户(Tenant)或复杂组织架构的资源访问控制检查。

核心工作流

AI 将遵循以下五个阶段进行深度审计:

  1. 理解权限模型:研究代码库如何实施授权。检查是否使用了装饰器(@login_required)、中间件、DRF 的 permission_classes 或自定义的 Manager
  2. 映射攻击面:识别所有处理用户特定数据的端点(Endpoint),重点关注通过 URL 或请求体传递 ID 的接口。
  3. 提出核心质疑:针对每个端点询问:“如果我是用户 A,且我知道用户 B 的资源 ID,我能访问它吗?”
  4. 追踪执行流
    • 确认 ID 进入系统的位置 寻找 ORM 查询语句 检查两者之间是否存在权限校验。
    • 检查 get_queryset() 是否被重写以过滤当前用户,或是否实现了 has_object_permission()
  5. 报告可证实结果:仅报告通过代码追踪确认的漏洞。提供的修复方案必须是实际的逻辑代码(如增加 PermissionDenied 抛出),而非简单的文档注释。

下载和安装

下载 django-access-review 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐