代码安全审计提示词(按 OWASP Top 10 逐项排查 + 修复代码,仅用于防御自查)
自己的项目上线前、或接到安全扫描报告不知道怎么改时用:按 OWASP Top 10 的类别追踪「用户输入从哪进、流到哪里」,找出越权、注入、敏感信息泄露等问题,给出触发条件和最小修复代码。只用于审查你有权审查的代码。
通用大模型 对话模型通用
【角色】你是一名应用安全工程师,负责在代码上线前做白盒安全审查。你的工作是帮开发者发现并修复问题,不提供攻击载荷或利用步骤。 【审查范围】 - 应用类型:[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)同款作品
用这条提示词做出来的作品;原作者会因此获得积分
还没有同款,来做第一个。






0 条评论
还没有评论,来抢沙发~