要在codebuddy中精准识别sql注入、越权访问等上线隐患,需手动指定审查范围(单文件/变更diff)、用@file锚定上下文提问、聚焦五类高危模式,并配置pr自动审查与ci/cd阻断机制。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

想在CodeBuddy里真正揪出那些上线才爆雷的隐藏问题——比如SQL注入、越权访问、空指针、敏感数据明文传输,不能只点“开始审查”就干等结果,得主动给AI喂对上下文、卡准触发时机、盯住高危模式。
选对审查范围:别让AI在整仓库里大海捞针
打开CodeBuddy IDE → 左侧资源管理器中,【右键点击单个Java/Python文件或整个src目录】 → 选择「AI代码审查」→ 等待扫描完成。这一步必须手动指定范围,否则默认审查整个workspace,3万行项目可能卡死或漏掉关键调用链。
如果正在处理PR,直接在Git面板中打开变更文件 → 右键「仅审查此变更」。CodeBuddy会自动聚焦diff区域,跳过未修改的旧逻辑,把算力用在刀刃上。
注意:审查单个函数不如审查它所在的完整类文件。例如查用户登录接口,只选LoginController.java,别只选login()方法——权限校验常藏在拦截器或基类里,脱离上下文AI会误判为“无鉴权”。
用对话框精准提问:把模糊需求转成可执行指令
方法一:用@file锚定上下文后直接问
在对话框输入:@file UserDAO.java 检查所有SQL拼接点,标出可能被userId参数触发的注入位置。AI会逐行扫描+号、f-string、%格式化,并定位到WHERE子句中未预编译的变量插值。
方法二:要求生成可验证的测试用例
输入:@file PaymentService.java 针对processRefund()方法,生成3个边界测试用例:金额为0、退款ID为空、用户余额不足。AI生成的测试代码会暴露原函数里缺失的参数校验和异常分支。
方法三:强制对比安全写法
输入:对比这段代码和PreparedStatement标准写法的区别:String sql = "SELECT * FROM user WHERE id = " + userId;。AI不仅指出风险,还会输出带占位符的修复代码,并说明为什么setString(1, userId)能阻断注入路径。
识别并验证高危模式:盯紧五类典型信号
第一步:检查SQL字符串中是否含动态表名或字段名
重点看ORDER BY、GROUP BY、UNION SELECT后的变量。例如String sql = "SELECT * FROM " + tableName + " WHERE status=1",CodeBuddy会标记tableName来源(如req.getParameter("table"))并提示“表名不可控,存在库级注入风险”。
CodeBuddy Code CLI 的安装、配置与使用指南。CodeBuddy Code 是腾讯推出的 AI 驱动 CLI 编程助手,支持自然语言驱动开发。 - 必备触发词:CodeBuddy, codebuddy, AI CLI, Tencent AI coding, @tencent-ai/codebuddy-code, terminal AI assistant - 适用场景:安装 CodeBuddy CLI、配置 CodeBuddy、使用 CodeBuddy 命令、排查 CodeBuddy 问题
第二步:扫描危险API调用链
查找innerHTML、eval()、Runtime.exec()、Class.forName()等函数的输入源。若输入来自request.getParameter或JSON.parse()结果,AI会标注“未过滤的DOM写入/XSS存储漏洞”。
第三步:验证权限控制是否被绕过
在Controller方法上搜索@PreAuthorize、@Secured注解缺失;在Service层检查deleteById()前是否调用hasPermission(userId, resourceId)。若发现deleteById(id)直接执行,AI会告警“高危操作无RBAC校验,存在水平越权风险”。
第四步:抓取敏感数据明文流转路径
搜索password、idCard、phone字段是否以String类型参与日志打印、HTTP响应体返回、Redis缓存key。例如log.info("user: " + user.getPassword())会被标红,并提示“密码明文打印,违反GDPR第32条”。
第五步:确认异常处理是否覆盖空值场景
检查user.getPassword().equals(inputPwd)这类写法——AI会指出“若user为null,将抛NPE”,并建议改为Objects.equals(user?.getPassword(), inputPwd)。
设置审查触发条件:让问题在提交前自动浮现
进入CodeBuddy设置 →「代码审查」→ 开启「PR提交时自动审查」→ 勾选「仅扫描变更行」和「高危规则优先检测」。这样每次推送代码到GitHub/GitLab,CodeBuddy会在3分钟内生成报告,把SQL注入、XSS、越权三类问题标为Critical,其他规范类问题设为Info。
在CI/CD流水线中集成CLI命令:codebuddy review --target=pr --rules=sql-inject,xss,auth-bypass --fail-on=critical。只要检测到高危项,构建直接失败,阻断带毒代码合入主干。
【关键前提:必须在项目根目录放置.codebuddy.yml配置文件,声明敏感字段白名单和忽略路径】,否则AI可能把加密工具类里的AES密钥变量误报为硬编码密钥。










