Fitten Code可自动检测代码中隐藏逻辑缺陷,需启用高级逻辑漏洞检测并重启VS Code,通过右键或命令面板扫描,生成含触发路径、违规描述及修复建议的报告,并支持AI问答归因与生成可运行回归测试。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让AI自动揪出代码里那些能跑通却会出错的隐藏逻辑缺陷,比如空列表除零、越权访问订单、优惠券无限复用——不是靠人工一行行盯,而是让Fitten Code主动推理业务规则并构造测试路径。
启用Fitten Code的Bug检测功能
打开VS Code,确保已安装Fitten Code且版本不低于v2.8.0。旧版本不支持逻辑漏洞语义分析模块。
点击左侧活动栏Fitten Code图标→选择「Settings」→在搜索框输入“logic”→勾选「Enable advanced logic vulnerability detection」。
【必须重启VS Code才能生效】 仅重载窗口无效,关闭所有窗口后重新启动,否则后续检测将跳过边界条件与流程建模步骤。
对选中代码块执行逻辑缺陷扫描
方法一:右键快捷触发
选中待检测的函数或类定义→右键→选择「Fitten Code – Find Logic Bugs」。
方法二:命令面板调用
按Ctrl+Shift+P(Mac为Cmd+Shift+P)→输入「Fitten: Scan for Logic Vulnerabilities」→回车执行。
这一步会自动注入三类探针:空值/负值/超长输入的边界模拟、跨状态操作序列(如注册→登录→下单→退单)、权限上下文快照。扫描耗时约3–12秒,取决于代码复杂度和嵌套深度。
解读漏洞报告中的关键字段
第一步:定位「Trigger Path」
报告顶部显示触发该漏洞的操作链,例如“用户A注册→获取临时token→未验证邮箱即调用/v1/order/create→传入order_id=999999(非本人创建)”。这不是静态警告,而是可复现的路径。
Fitten Code 1.0.3是一款由清华博士团队打造的AI编程助手,基于国产计图(Jittor)深度学习框架开发。它支持VS Code、JetBrains系列等主流IDE及80多种编程语言。核心功能包括智能代码补全、注释生成、代码解释、Bug检测、单元测试生成等,旨在全方位提升开发效率。该工具对个人用户免费开放。
第二步:查看「Logic Violation」描述
例如:“允许未激活账户执行支付回调确认,违反‘账户需邮箱验证后才可交易’的业务规则”。这里直接引用你项目文档里的原始规则语句(若Fitten Code已索引README或OpenAPI spec)。
第三步:检查「Fix Suggestion」是否含上下文修复
优质建议会给出带guard clause的补丁,如在handler开头插入if !user.EmailVerified { return errorx.New(“EMAIL_NOT_VERIFIED”) },而非笼统说“加校验”。
注意:若「Confidence」字段标为LOW,说明当前缺乏足够业务上下文(如缺失API文档或注释),需手动补充@rule或在对话中输入业务约束再重扫。
用AI问答深化漏洞归因
在Fitten Code聊天窗口中,粘贴漏洞报告中的「Trigger Path」段落,然后输入:
“请基于这个触发路径,列出3种可能绕过现有校验的变体,并说明每种变体依赖哪条被忽略的业务规则。”
选中报告中某一行「Logic Violation」文本,右键选择「Explain with Context」,Fitten Code会提取该行涉及的变量生命周期、调用栈深度、所属领域模型(如Order、User、Coupon),并标注哪些字段来自外部输入、哪些由服务端生成。
这一步能暴露静态扫描遗漏的“隐性耦合”——比如前端传来的status字段被后端无条件信任,而实际应只接受有限枚举值。Fitten Code会比对OpenAPI定义与运行时行为差异,直接标红不一致项。
生成可运行的回归测试用例
① 在漏洞报告界面,点击「Generate Test」按钮;
② 选择测试框架(默认生成pytest,支持jest/go test);
③ 勾选「Include Negative Cases」——此项强制包含空输入、越权ID、时间穿越等非常规场景;
④ 点击「Insert as Comment」,测试代码将以/** @test */块形式插入到原函数上方,无需复制粘贴;
⑤ 按Ctrl+Alt+T(Mac为Cmd+Option+T)一键运行该测试块,失败即复现漏洞。
生成的测试不是简单断言返回值,而是完整模拟HTTP请求头、JWT payload、数据库预置状态。例如针对“优惠券无限复用”,测试会先创建coupon_id=123且used_count=5,再发起第六次使用请求,断言响应码为403而非200。

















