卡码笔记-最强八股文
首页
计算机基础
C++
Java
Go
🔥大模型🔥
  • 大模型面经
  • Java面经
  • C++面经
简历专栏
秋招投递表
代码随想录 (opens new window)
首页
计算机基础
C++
Java
Go
🔥大模型🔥
  • 大模型面经
  • Java面经
  • C++面经
简历专栏
秋招投递表
代码随想录 (opens new window)
  • 本栏必读

    • 卡码大模型专栏介绍
  • 大模型面经

  • 大模型动态

  • Claude学习专栏

  • 入门认知

  • Prompt与调用基础

  • RAG检索增强

  • Agent智能体

  • 微调认知

  • 部署与工程化

  • 多模态入门

  • Transformer原理

  • 手撕Transformer

  • 模型家族与Llama架构

# 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 安全员在提交入口前把它们拦下。

作用:开篇把“功能看起来完成了,但安全问题藏在背后”画面化。这里适合卡通图,不适合画技术流程图。

# 一、头像上传这么简单,为什么反而容易出问题

头像上传,几乎每个后台项目都有。

也正因为它太常见,开发者拿到需求后的第一反应通常是:

  1. 前端选一张图片;
  2. 后端接收 multipart/form-data;
  3. 把文件写进 uploads/avatars;
  4. 返回一个 URL。

业务链路很短,Agent 也特别容易一次写完。

可安全问题藏在“正常流程”之外。

OWASP 的文件上传安全清单 (https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html)明确提醒:不能直接信任客户端传来的 Content-Type,文件类型、扩展名、文件签名、大小、文件名、存储位置和上传权限都需要分别处理。

比如代码直接拿用户上传的原始文件名拼路径:

uploads/avatars/ + 用户文件名
1

正常用户传的是 carl.jpg。

攻击者传的可能是:

../../config/app.yml
1

如果后端没有重新生成文件名,也没有校验最终路径,这个“头像”就可能跑出头像目录,覆盖本来不该碰的文件。

再比如,只看 .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
1

或者直接说:

帮我进行代码安全扫描
1

我觉得这里最关键的,不只是多了三种扫描。

而是 发现、解释、修复、复验都没有离开当前写码会话。

传统流程往往是安全工具报一个位置,开发者自己重新读代码、判断真假、想修复方案。

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. 补充必要的错误处理和测试。

请先阅读现有项目结构,复用当前的认证、文件存储和错误处理方式,完成后运行相关测试。
1
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,再到文件存储模块和用户资料模块。

单看每一段都没问题,串起来才可能看到:

外部上传参数 → 文件处理 → 路径拼接 → 磁盘写入
1

深度扫描做的就是跨文件、跨函数追踪这条数据流。

它适合放在提交或 push 前,做一次范围更大的检查。

【待补截图 5:L3 提交前 Questions 卡片 + 跨文件结果】

要拍到:提交前是否扫描的询问、跨文件调用链或数据流、涉及的文件列表。

注意:不要预写“发现鉴权缺失”。Qoder 最新官方说明中,越权访问、鉴权缺陷和业务逻辑漏洞目前不是重点覆盖范围。以实际扫描结果为准。

【待补实测结论】

L3 追踪了 ____ 个文件,数据从 ____ 进入,最终到达 ____。

它比 L2 多发现 / 多解释了:____。

# 最后一关:不是报完警,而是在同一会话修完

扫描工具最烦人的情况,不是查不出问题。

而是扔给你一句“这里可能存在路径穿越”,然后就没了。

Qoder Security 的完整链路应该是:

发现风险 → 解释数据流 → 给出修复方案 → 主 Agent 修改 → 再次扫描复验
1

【待补截图 6:同会话修复 + 复验通过】

最好拍到修复前后的代码 diff、Agent 的修复说明,以及再次扫描后的结果。

如果复验仍有问题,也如实保留,这反而能说明真实体验,不要只截一个绿色结果。

【待补最终实测评价,建议按下面四句写】

从发现到修复一共用了 ____ 分钟。

最有价值的发现是 ____,因为 ____。

有一条告警我认为是误报 / 信息不足:____。

修复后原有头像上传功能和测试:____。

# 五、这三层真正解决的,不只是“多扫一次”

如果只看功能列表,Qoder Security 很像把静态扫描塞进了编辑器。

但它真正想改的是安全反馈出现的位置。

以前的流程是:

写代码 → 提交 → CI / 评审发现问题 → 开发者重新理解 → 修复
1

现在变成:

Agent 写代码 → 当前会话发现问题 → 当前会话修复 → 复验 → 提交
1

安全越靠近代码生成现场,修复需要重新找回的上下文就越少。

这对 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,打开安全审查,然后拿一个自己的真实需求跑一遍。

别只看它报了几个漏洞。

重点看三件事:判断准不准、解释清不清、修完能不能复验闭环。

Last Updated: 7/30/2026, 9:48:36 PM

评论

验证登录状态...

侧边栏 侧边栏
夜间模式 夜间
卡码简历 卡码简历
代码随想录 代码随想录
卡码投递表 卡码投递表🔥
2026实习校招群 2026群
添加客服微信 2026实习校招客服微信 PS:通过微信后,请发送姓名-学校-年级-2026实习/校招
支持卡码笔记 支持卡码笔记
鼓励/支持/赞赏Carl 卡码笔记赞赏码
1. 如果感觉本站对你很有帮助,也可以请Carl喝杯奶茶,金额大小不重要,心意已经收下
2. 希望大家都能梦想成真,有好的前程,加油💪