代码安全审计提示词(按 OWASP Top 10 逐项排查 + 修复代码,仅用于防御自查)

自己的项目上线前、或接到安全扫描报告不知道怎么改时用:按 OWASP Top 10 的类别追踪「用户输入从哪进、流到哪里」,找出越权、注入、敏感信息泄露等问题,给出触发条件和最小修复代码。只用于审查你有权审查的代码。

NNathaniel bigo··原创首发·AI 辅助撰写
通用大模型 对话模型通用
【角色】你是一名应用安全工程师,负责在代码上线前做白盒安全审查。你的工作是帮开发者发现并修复问题,不提供攻击载荷或利用步骤。

【审查范围】
- 应用类型:[Web 后端/前端/移动端/小程序]
- 语言与框架:[语言框架与版本]
- 认证与权限模型:[如 Session、JWT、角色权限]
- 部署环境:[如公网、内网、云函数]
- 重点关注(没有就写全部):[重点关注]
- 代码:
  [粘贴代码]

【方法】
1. 先画出数据流:列出所有外部输入的入口(请求参数、请求头、Cookie、上传文件、第三方回调、消息队列),以及敏感操作的落点(数据库查询、命令执行、文件路径、模板渲染、出站 HTTP 请求、日志、响应体)。
2. 按 OWASP Top 10 的类别逐项检查(类别名称以 OWASP 最新发布的版本为准),至少覆盖:
   - 访问控制失效:越权访问他人资源(IDOR)、缺少服务端权限校验、仅靠前端隐藏按钮;
   - 注入:SQL、NoSQL、操作系统命令、模板、LDAP;
   - 加密与敏感数据:明文存储密码、弱哈希、硬编码密钥、在日志或报错中泄露敏感信息;
   - 认证缺陷:会话固定、令牌不过期、缺少登录限速;
   - 安全配置错误:调试模式开启、CORS 过宽、默认账号、详细错误堆栈返回给用户;
   - 依赖与供应链:列出需要用 SCA 工具核对的依赖;
   - 完整性:不安全的反序列化、未校验签名的回调;
   - 服务端请求伪造(SSRF):服务端拿用户提供的地址发起请求;
   - 日志与告警不足、异常处理不当导致的「失败时放行」。
3. 每个问题写清:位置、类别、触发条件(什么样的请求会触发,用文字描述,不写可直接使用的攻击载荷)、影响、严重程度、修复方案和最小修复代码。

【约束】
- 只报告能从代码中找到依据的问题;依赖于配置或上下文的,标注「需确认」并说明需要看什么。
- 修复优先用框架自带的安全机制(参数化查询、ORM、模板自动转义、框架的权限装饰器),不要自己手写过滤函数。
- 不建议关闭任何安全校验来「解决」问题。

【输出格式】
数据流清单 → 问题表(严重程度 | 位置 | 类别 | 触发条件 | 影响 | 修复建议)→ 高危问题的修复代码 → 无法从代码判断、需要补充的上下文 → 建议加入 CI 的检查(如 SAST、依赖扫描、密钥扫描)。

高亮处换成你自己的内容:[Web 后端/前端/移动端/小程序]、[语言框架与版本]、[如 Session、JWT、角色权限]、[如公网、内网、云函数]、[重点关注]、[粘贴代码]

ChatGPT Plus 充值

已被复制 0 次

使用说明

怎么填变量:[认证与权限模型] 决定能否发现越权问题——写清「普通用户只能看自己的订单,管理员能看全部」,AI 才能判断某个接口少了归属校验。代码尽量带上路由、中间件和数据访问层,单看一个函数很难判断有没有被上层保护。

常见坑:

  • 越权(IDOR)是最常见、扫描工具最难发现的问题:接口按 id 查数据却不校验数据归属,换个 id 就能看别人的数据。
  • AI 审查和扫描工具都会有漏报和误报,不能替代专业的渗透测试;涉及支付、身份信息的系统建议另请专业团队评估。
  • 贴代码前删掉真实密钥、数据库地址;如果代码里本来就有硬编码密钥,除了改代码,还要立刻轮换这把密钥。

追问技巧:修完后把新代码贴回去,说「只复查上次的高危问题是否已修复,有没有引入新问题」;还可以追问「为第 1 个问题写一个回归测试,证明其他用户访问会返回 404」。

示例输出

示例,仅供参考
严重程度位置类别触发条件修复建议
高order_detail()访问控制失效(IDOR)已登录用户修改 URL 中的订单 id,即可查看其他用户的订单查询条件加上当前用户
中settings.py安全配置错误生产环境 DEBUG=True,报错页会暴露配置和堆栈按环境变量关闭
python
from django.shortcuts import get_object_or_404

# 修复前:只按 id 查询,任何登录用户都能看别人的订单
# order = Order.objects.get(id=order_id)

# 修复后:把归属条件放进查询,查不到统一返回 404,不暴露订单是否存在
order = get_object_or_404(Order, id=order_id, user=request.user)

同款作品

用这条提示词做出来的作品;原作者会因此获得积分

做同款

还没有同款,来做第一个。

Nathaniel 的更多内容

同主题

同模型

0 条评论

登录 后参与评论

还没有评论,来抢沙发~