workbuddy通过启用静态分析插件、绑定仓库自动扫描、强制参数化查询、集成输入校验及加载自定义yaml规则五种方式防御sql注入。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在开发过程中使用WorkBuddy辅助编写或审查SQL相关代码,但发现其未主动识别潜在SQL注入风险,则可能是由于安全检测模块未启用或规则配置不完整。以下是WorkBuddy辅助SQL注入防御的具体实现方式:
一、启用静态分析插件并配置高敏检测规则
WorkBuddy通过内置SAST引擎对源码进行词法与语法解析,匹配参数拼接、反射输出、未过滤用户输入等典型SQL注入模式。需激活专用规则包并设定敏感度阈值,确保覆盖字符串拼接、exec调用及动态查询构造等高危场景。
1、在WorkBuddy主界面点击“设置”图标,进入“插件管理”页面。
2、搜索并启用SQLi-Detection-Rule-Pack插件。
3、点击“规则配置”,将SQL注入检测等级设为高敏感度(含字符串拼接+exec调用)。
二、绑定代码仓库并启用提交前自动扫描
WorkBuddy支持对接GitHub、GitLab等Git平台,在代码推送至main分支或新建Pull Request时自动拉取增量变更,对新增SQL语句执行实时扫描,避免人工遗漏。
1、进入“项目管理”页,点击“新增项目”,选择对应Git平台并授权访问权限。
2、在仓库列表中勾选目标代码库,点击“启用自动扫描”。
3、在触发策略中勾选push到main分支与新建Pull Request时两项触发条件。
三、强制执行参数化查询安全范式
WorkBuddy在代码生成与补全阶段嵌入安全范式检查逻辑,当检测到原始SQL拼接操作(如+、%、f-string内嵌变量)时,自动提示替换为参数化形式,并根据语言生态推荐对应占位符语法。
1、输入SQL语句时,若出现"SELECT * FROM users WHERE name = '" + name + "'"类写法,WorkBuddy即时标红并弹出修复建议。
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
2、点击建议项后,自动重写为Python示例:cursor.execute("SELECT * FROM users WHERE name = ?", (name,))。
3、对PHP代码,自动转换为PDO预处理格式:$stmt = $pdo->prepare("SELECT * FROM users WHERE name = :name"); $stmt->execute(['name' => $name]);。
四、集成输入校验与最小权限提示机制
WorkBuddy不仅关注SQL语法层防护,还联动上下文语义分析用户输入来源与用途,在API控制器、表单处理等位置识别未校验的外部参数,并提示补充白名单验证与类型约束。
1、当检测到request.args.get('id')直接用于SQL查询时,提示添加int()强转前校验是否为纯数字。
2、对枚举类参数(如sort=created_at),建议采用白名单比对而非正则匹配,并生成可直接插入的校验代码块。
3、在数据库连接配置段落旁标注提示:禁止使用root账号,应创建仅含SELECT权限的专用账户。
五、加载自定义YAML规则扩展业务特有风险识别
针对企业内部框架中绕过标准预编译机制的危险API(如某ORM的rawQuery方法),可通过YAML规则语言定义专属检测逻辑,使WorkBuddy识别非标调用路径下的注入风险。
1、进入“规则中心”→“自定义规则”,点击“新建YAML规则”。
2、在rule_id字段填写custom-orm-rawquery-sqli,在pattern字段填入正则表达式\.rawQuery\([^)]*?(\$\{|\+\s*request\.|\.get\(|\.getParameter\()\)。
3、在severity字段设定为CRITICAL,保存后在项目规则组中启用该条目。










