# Qoder Security把安全检查塞进写码会话
现在让 AI Agent 做一个“头像上传”有多快?
建接口、收文件、存到服务器、返回图片地址。
需求一丢,十分钟可能就写完了。
你本地传一张照片,能显示;再跑一下测试,也过了。
看起来没啥问题,直接提交。
但攻击者传上来的,可能不是一张老老实实的头像。
文件名里能不能塞进 ../?只改请求里的 Content-Type,能不能把别的文件伪装成图片?文件大小有没有限制?上传后的文件会不会被服务器当成可执行文件?
功能跑通,只能说明正常用户能用;它证明不了恶意用户钻不进去。
这就是 AI 写代码越来越快之后,一个很现实的问题:
代码生成提速太多,人工审查,根本看不过来。
安全检查如果还在几天后的 CI、代码评审,甚至上线前才出现,整个开发链路就会前快后堵。
所以我现在开发项目,都会用 Qoder Security 扫一遍,我才会放心一些。
Qoder Security不是等代码进仓库之后再给你一张漏洞清单,而是把安全检查放进 Agent 正在写代码的会话里:边写、边查,发现问题后还在这个会话里继续修。
如果还没有 Qoder账户的话,可以去 https://qoder.com.cn/ 注册一波。
建议下载 桌面应用端:

可以试试这个也页面,真正让你感受到,它在干活,不用看着它,去其他的就好了。

这篇文章,我准备拿最普通的“头像上传”实测一次。
# 目录
先给录友看一下全文:
- 一个头像上传,为什么能埋下安全坑
- 代码安全为什么正在从流水线搬进写码会话
- Qoder Security 的三层检查到底在查什么
- 实测:让 Agent 写头像上传,它能不能发现并修掉问题
- Qoder Security 适合谁,又不能替代什么
【卡通图建议 1:放在这里】
画面:程序员刚把“头像上传完成”卡片推进提交入口,背后却藏着伪装成头像的木马、超大文件和带
../的文件名;一名 Qoder Security 安全员在提交入口前把它们拦下。作用:开篇把“功能看起来完成了,但安全问题藏在背后”画面化。这里适合卡通图,不适合画技术流程图。
# 一、头像上传这么简单,为什么反而容易出问题
头像上传,几乎每个后台项目都有。
也正因为它太常见,开发者拿到需求后的第一反应通常是:
- 前端选一张图片;
- 后端接收
multipart/form-data; - 把文件写进
uploads/avatars; - 返回一个 URL。
业务链路很短,Agent 也特别容易一次写完。
可安全问题藏在“正常流程”之外。
OWASP 的文件上传安全清单 (https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html)明确提醒:不能直接信任客户端传来的 Content-Type,文件类型、扩展名、文件签名、大小、文件名、存储位置和上传权限都需要分别处理。
比如代码直接拿用户上传的原始文件名拼路径:
uploads/avatars/ + 用户文件名
正常用户传的是 carl.jpg。
攻击者传的可能是:
../../config/app.yml
如果后端没有重新生成文件名,也没有校验最终路径,这个“头像”就可能跑出头像目录,覆盖本来不该碰的文件。
再比如,只看 .jpg 后缀或者浏览器传来的 image/jpeg,也不代表文件内容真的是图片。
这些问题都不影响普通用户上传头像,所以功能测试很可能一路绿灯。
这也是安全问题最麻烦的地方:它往往不是功能没实现,而是实现得“只考虑了好人怎么用”。
# 二、AI 写码越快,安全检查越不能只守在最后
以前一个开发者一天改几十行、几百行代码,代码评审还能慢慢看。
现在 Agent 一轮对话就能改多个文件,十分钟写完一个完整功能,代码产出速度已经变了。
如果安全检查仍然只出现在 CI 流水线或者合并请求里,会发生什么?
开发者收到告警时,可能已经切去做下一个需求了。
他要重新回忆:
- 这个参数从哪里进来;
- 中间经过了哪些函数;
- 为什么当时这么写;
- 改掉之后会不会破坏原来的需求。
发现漏洞只是第一步,重新捡回上下文才是最费时间的那一步。
所以 2026 年,AI Coding 产品开始出现两条安全路线。
一条是仓库级扫描。OpenAI 的 Codex Security (https://openai.com/index/codex-security-now-in-research-preview/)会理解已有代码库、建立威胁模型、验证风险,再给出修复建议。
另一条是会话内护航。Claude Code 的 Security Guidance (https://claude.com/plugins/security-guidance)会在写代码的过程中给出安全提醒,尽量让问题在当前会话解决。
两条路线不完全一样,但背后是同一个判断:
AI 生成代码的速度上来了,安全反馈也得跟着进入 AI 写码流程。
Qoder Security 走的是“会话内护航 + 可主动扫描”这条线。
按照 Qoder 本次发布口径,它是国内主流 Agentic Coding 产品中,率先把“编码会话内三层安全护航 + 同会话修复”做成可用产品能力的产品。
注意这个说法的边界。
不是“国内第一个代码安全工具”,也不是“国内首个 AI 安全大模型”,而是 Agentic Coding 产品里的会话内安全能力。
# 三、Qoder Security 到底做了什么
Qoder Security 已经内置到 Qoder Desktop 和 Qoder CLI,不需要再装第三方插件。
在 Desktop 里,进入 Quest 视窗的 设置 > Security

打开“开启安全审查”,就能看到三层能力:

三层不是同一份扫描换三个名字,而是检查时机和深度不一样。
| 层级 | 它主要干什么 | 什么时候出现 |
|---|---|---|
| 静态检查 | 用高危模式和规则快速发现危险调用、硬编码密钥等明显风险 | Agent 生成代码或执行工具后自动运行 |
| 轻量扫描 | 结合本轮增量代码和上下文,判断外部输入是否流入文件、数据库、命令等敏感操作 | 一轮代码修改接近完成时建议运行 |
| 深度扫描 | 跨文件、跨函数追踪完整数据流,找单个文件里看不出的关联风险 | 提交或 push 前建议运行 |
静态检查免费自动跑。
轻量扫描和深度扫描会在合适的节点询问你要不要扫,由用户决定,不会强行打断写代码;这两层会消耗 Credits。
你也可以随时在会话里输入:
/security-scan
或者直接说:
帮我进行代码安全扫描
我觉得这里最关键的,不只是多了三种扫描。
而是 发现、解释、修复、复验都没有离开当前写码会话。
传统流程往往是安全工具报一个位置,开发者自己重新读代码、判断真假、想修复方案。
Qoder Security 基于 Qoder 自研安全 LLM,除了看规则,还会结合代码语义和数据流理解风险。确认问题后,主 Agent 可以继续修改代码,再跑一次检查完成复验。
这就像写代码时旁边坐了个安全工程师。
不是等你把活交了再退回来,而是在你还记得“为什么这么写”的时候提醒你。
【技术图建议 1:这里可以后续画 draw.io,不是卡通图】
内容:同一条写码时间线,从“Agent 生成代码”依次经过 L1、L2、L3,风险被拦截后回到当前会话修复,再复验后提交。
重点:画出问题没有流到仓库和 CI 才被发现,而是在会话内形成闭环。不要把三层说明堆成三个大段文字框。
# 四、实测:让 Qoder Agent 做一个头像上传
我直接拿一个真实需求测。
卡码简历(https://jianli.kamacoder.com/) 一直都没有头像管理的功能:

正好这次来个大家演示一波。
我会让 Qoder Agent 给一个用户中心增加头像上传接口。
首先 让 Qoder 绑定对应的项目目录上。

提示词故意只写正常的产品需求,不提前把安全答案喂给它:
请为这个项目增加用户头像上传功能:
1. 提供 POST /api/users/me/avatar 接口,接收 multipart/form-data;
2. 支持 jpg、png、webp,单个文件最大 5MB;
3. 文件保存到项目现有的上传目录,并返回可访问的头像 URL;
4. 把头像地址更新到当前用户资料;
5. 补充必要的错误处理和测试。
请先阅读现有项目结构,复用当前的认证、文件存储和错误处理方式,完成后运行相关测试。
2
3
4
5
6
7
8
9
这个需求很日常。
里面没有故意要求 Agent 使用危险函数,也没有告诉它“请生成一段有漏洞的代码”。
我要看的就是:
Agent 按正常思路把功能做完之后,Qoder Security 能不能发现功能测试之外的问题。
【待补截图 2:Agent 完成头像上传】
拍到:需求提示词、Agent 改动的主要文件,以及测试通过或任务完成状态。
发布前补一句真实结果:Agent 一共改了几个文件、用了什么语言/框架、功能测试是否通过。
# 第一关:静态检查能不能当场拦住明显风险
静态检查会在代码生成或工具执行后自动运行。
这一层追求的是快,主要抓高风险调用、危险模式、硬编码敏感信息这类比较明确的问题。
【待补截图 3:L1 静态检查命中或自动修复】
如果命中:截图要同时带上风险说明、对应代码位置和修复动作。
如果没有命中:不要硬写“L1 查出了问题”,正文改成“本次实现没有触发 L1,说明三层不是每层都必须报一个问题”。
【待你补实测结论】
本次 L1 实际发现了:____。
Qoder 给出的修复是:____。
我检查代码后认为:这个判断准确 / 存在误报,因为 ____。
# 第二关:轻量扫描能不能看懂“代码能跑,但校验不够”
写完一轮代码后,Qoder 会出现“扫一扫,检测代码安全隐患”的建议卡片。
轻量扫描不是只搜某个函数名,而是结合本轮改动,看用户输入最后流向了哪里。
在头像上传里,我会重点看它是否注意到这些问题:
- 是否只相信文件扩展名或客户端传来的
Content-Type; - 是否检查真实文件内容、文件签名和大小;
- 是否直接使用用户提供的原始文件名;
- 上传失败时,是否遗留临时文件或脏数据。
这些是观察点,不是预设答案。
最终写进文章的,只能是它真实扫出来的结果。
【待补截图 4:L2 建议卡片 + 扫描结果】
最好连续截两个画面:先截“扫一扫,检测代码安全隐患”卡片,再截扫描完成后的风险详情。
风险详情尽量带上:风险等级、输入来源、危险操作、Qoder 的判断依据。
【待补实测结论】
L2 实际识别到的输入链路是:____ → ____ → ____。
它指出的具体风险是:____。
这个问题为什么普通功能测试测不出来:____。
# 第三关:深度扫描能不能跨文件把链路串起来
头像上传通常不只改一个文件。
请求从 Controller 进来,可能经过 Service,再到文件存储模块和用户资料模块。
单看每一段都没问题,串起来才可能看到:
外部上传参数 → 文件处理 → 路径拼接 → 磁盘写入
深度扫描做的就是跨文件、跨函数追踪这条数据流。
它适合放在提交或 push 前,做一次范围更大的检查。
【待补截图 5:L3 提交前 Questions 卡片 + 跨文件结果】
要拍到:提交前是否扫描的询问、跨文件调用链或数据流、涉及的文件列表。
注意:不要预写“发现鉴权缺失”。Qoder 最新官方说明中,越权访问、鉴权缺陷和业务逻辑漏洞目前不是重点覆盖范围。以实际扫描结果为准。
【待补实测结论】
L3 追踪了 ____ 个文件,数据从 ____ 进入,最终到达 ____。
它比 L2 多发现 / 多解释了:____。
# 最后一关:不是报完警,而是在同一会话修完
扫描工具最烦人的情况,不是查不出问题。
而是扔给你一句“这里可能存在路径穿越”,然后就没了。
Qoder Security 的完整链路应该是:
发现风险 → 解释数据流 → 给出修复方案 → 主 Agent 修改 → 再次扫描复验
【待补截图 6:同会话修复 + 复验通过】
最好拍到修复前后的代码 diff、Agent 的修复说明,以及再次扫描后的结果。
如果复验仍有问题,也如实保留,这反而能说明真实体验,不要只截一个绿色结果。
【待补最终实测评价,建议按下面四句写】
从发现到修复一共用了 ____ 分钟。
最有价值的发现是 ____,因为 ____。
有一条告警我认为是误报 / 信息不足:____。
修复后原有头像上传功能和测试:____。
# 五、这三层真正解决的,不只是“多扫一次”
如果只看功能列表,Qoder Security 很像把静态扫描塞进了编辑器。
但它真正想改的是安全反馈出现的位置。
以前的流程是:
写代码 → 提交 → CI / 评审发现问题 → 开发者重新理解 → 修复
现在变成:
Agent 写代码 → 当前会话发现问题 → 当前会话修复 → 复验 → 提交
安全越靠近代码生成现场,修复需要重新找回的上下文就越少。
这对 Agentic Coding 尤其重要。
因为 Agent 不只生成得快,改动还经常散在多个文件里。让另一个人几天后从一条告警倒推整个调用链,成本肯定比当前会话顺手修掉高。
【卡通图建议 2:放在这里】
画面左右对比。左边是传统流程:程序员已经走远,CI 保安举着漏洞单追出来;右边是会话内流程:安全员就在 Agent 的工位旁,当场指出问题并一起改完。
作用:把“上下文没有丢、修复成本更低”画出来。和开头那张分别承担“风险”与“效率”两个情绪点,不重复。
# 六、哪些人值得现在试
如果你只是偶尔让 AI 补一段算法题,Qoder Security 的价值没那么明显。
但下面几类录友,我觉得值得拿自己的项目跑一次:
第一,大量用 Agent 写业务代码的人。
Agent 一次改的文件越多,人工逐行审查越容易漏。会话内检查至少能多加一道和代码上下文绑定的反馈。
第二,没有专职安全团队的小团队。
它不能替代安全工程师,但可以先拦掉一部分常见问题,至少别让所有风险都等到上线前才第一次被看见。
第三,正在把 AI Coding 推进团队研发流程的人。
个人 Demo 里,一个漏洞可能只是返工;团队里,Agent 生成量一上来,安全评审很容易成为新的瓶颈。
不过录友也别把它当成“开了就绝对安全”。
Qoder 官方说明 (opens new window)已经写得很清楚:当前重点覆盖 SQL 注入、命令注入、路径穿越、敏感信息泄露、加密方式使用不当、不安全反序列化等风险;越权访问、鉴权缺陷和业务逻辑漏洞目前不是重点覆盖范围。
而且模型给出的修复仍然要人工审阅。
所以正确的关系是:
Qoder Security 把安全检查左移到编码阶段,与 CI、SAST、SCA、人工代码评审和专业安全审计互补,不是把它们全部替掉。
# 写在最后
Qoder Security 这次最值得看的,不是又多了一个“扫描代码”的按钮。
而是它把安全检查放到了 Agent 写代码的同一个会话里。
AI 十分钟写完一个头像上传当然很爽。
但真正能进生产的代码,不只是“写完”,还得知道哪里可能出事,并在提交之前把它修完。
这才是 Agentic Coding 接下来要补的一课。
想体验的录友,可以打开 Qoder Desktop (opens new window),进入 Quest 视窗的 设置 > Security,打开安全审查,然后拿一个自己的真实需求跑一遍。
别只看它报了几个漏洞。
重点看三件事:判断准不准、解释清不清、修完能不能复验闭环。
评论
验证登录状态...