SQLGuard:给你的 SQL 变更装上 AI 护盾

2026-5-13 杜世伟 Message

SQLGuard:给你的 SQL 变更装上 AI 护盾

一个开发者写给开发者的工具——让每一条上线的 SQL,都经过一双”会思考”的眼睛。


从一次线上事故说起

“DELETE FROM orders;”

没有 WHERE 子句,也没有 LIMIT 限制。凌晨两点,DBA 的手颤抖着盯着屏幕,数据已经清空。这条 SQL 在本地测过、Review 通过、CI 绿灯放行——但没有人注意到那个缺失的 WHERE。

类似的故事每年都在无数团队里上演。工具链里缺了一个关键环节:专门理解 SQL 语义风险的 Review 工具

这就是 SQLGuard 诞生的原因。


它做什么

SQLGuard 是一个结合规则引擎AI 大模型的 SQL 风险检测工具,提供桌面客户端和 API 服务两种使用方式。

提交一段 SQL,它会告诉你:

  • 哪里有高风险操作(P0/P1 级别)
  • 为什么危险,影响范围是什么
  • 如何改写更安全

不是简单的关键字扫描,而是基于 AST 语法树分析,理解你写的是什么,而不只是你写了什么字符串。


技术栈选型逻辑

后端:Python FastAPI + sqlglot

早期版本用正则做 SQL 检测,结果一堆误报——DROP 出现在注释里也被标记,DELETE 有子查询时 WHERE 判断失效。

换用 sqlglot 之后,SQL 被解析成 AST,规则基于语法节点判断,准确率大幅提升。sqlglot 支持 20+ 种方言(MySQL、PostgreSQL、Spark SQL 等),方言差异不再是检测盲点。

FastAPI 处理 HTTP 层,异步架构保证文件批量上传时不阻塞主线程。ZIP 包里几十个 SQL 文件并发分析,结果按文件维度聚合返回。

AI 集成:双引擎适配

规则引擎能发现已知模式,但 AI 能发现你没想到的问题——比如某个查询的隐式笛卡尔积,或者特定业务场景下 LIMIT 的必要性。

hybrid 模式:规则先跑,AI 补充分析,结果合并去重
rule 模式:纯规则,快速、可离线
ai 模式:纯 AI,适合复杂业务逻辑审查

AI 层支持 OpenAI 兼容接口(OpenAI、DeepSeek、Qwen 等云端模型)和 Ollama 本地模型,数据不出内网时选 Ollama,完整隐私保障。

客户端:Electron 桌面应用

不是又一个 Web 平台——是一个你可以装在本地、离线运行的桌面工具。后端地址可配置,团队用 Docker 部署共享后端也好,个人本地跑 Ollama 也好,客户端切换一个地址搞定。


一个被低估的功能:ZIP 批量分析

数据库迁移脚本动辄几十个文件,逐个粘贴到工具里不现实。

SQLGuard 支持上传 .zip 压缩包,自动遍历其中所有 .sql/.txt 文件:

  • 单文件异常不中断整体分析(容错处理)
  • 自动忽略 __MACOSX/ 等系统垃圾目录
  • 同内容分组(content_group):相同 SQL 的文件复用同一次 AI 分析,避免重复调用
  • 目录树展示 + 分文件问题明细折叠展开
  • 支持筛选:全部 / 仅失败 / 仅跳过 / 仅重复内容组

发版前把整个迁移脚本目录打包扔进去,一次出完整风险报告。


GitLab MR Review 集成

对于已经在用 GitLab 的团队,SQLGuard 提供了 /gitlab/mr-review 接口,直接接收 MR Diff 内容:

curl -X POST http://127.0.0.1:8000/gitlab/mr-review \
  -H "Content-Type: application/json" \
  -d '{
    "title": "feat: 用户查询优化",
    "diff": "+ SELECT * FROM users;\n+ DELETE FROM users;",
    "mode": "hybrid",
    "dialect": "mysql"
  }'

可以挂在 GitLab CI Pipeline 里,在 MR 合并前自动触发 SQL 风险扫描,有问题直接阻断合并。把 SQL Review 变成 CI 门禁,而不是靠人工记得检查。


导出报告:Review 过程可追溯

检测结果支持一键导出 JSON / Markdown 报告,区分简版和详细版。导出前有预览弹窗,预览内支持关键字搜索和高亮,上一处/下一处跳转,方便在发现问题后快速定位上下文。

这份报告可以直接贴进 MR 描述、需求文档或者周报——Review 过程有据可查,而不是”口头说没问题”


部署很简单

个人开发者:三条命令跑起来

python3 -m venv myenv && source myenv/bin/activate
pip install -r requirements.txt
python backend/main.py

团队共享:Docker Compose 一键启动

cp .env.example .env  # 填入你的 Ollama 地址或 API Key
docker compose up -d

生产环境:Nginx 反向代理 + HTTPS + CORS 白名单,README 里有完整配置示例,包括速率限制和 IP 白名单。


安全性:一个工具审查别人的安全,自身不能是漏洞

SQLGuard 在设计上做了几个关键决定:

  • 无硬编码凭证:所有 API Key、模型地址通过环境变量注入
  • CORS 白名单:通过 ALLOWED_ORIGINS 环境变量控制,默认只允许本地回环地址
  • HTTP 方法限制:API 只接受 GET/POST,拒绝其他方法
  • Electron 沙箱contextIsolation: truesandbox: truenodeIntegration: false,渲染进程无法直接访问 Node.js API

写在最后

SQLGuard 不试图替代人工 Code Review,它做的是消灭那些”本不该出现”的风险——那些在 Reviewer 注意力不集中时、在深夜赶版本时、在例行操作掩盖下溜进去的高危 SQL。

工具已经开源,本地跑 Ollama 完全免费,数据不出网。

如果你的团队有 SQL 变更上线的压力,值得试一试。


项目地址:github.com/dsw0214/sql-guard

评论(0) 浏览(135)

从技术拦截视角看快手直播事故后的风险管控升级

2025-12-23 杜世伟 Message

2025年12月22日晚,快手平台遭遇黑灰产有组织攻击,大量违规色情内容通过批量账号同步开播扩散,暴露了平台在大规模协同攻击面前的技术防御短板。此次事故并非单一漏洞导致,而是黑灰产利用批量造号、接口漏洞、先发后审时间窗口等多重手段突破防线的结果。从技术角度看,构建全链路、多层次的技术拦截体系,是防范此类直播安全事故、实现风险精准管控的核心路径。

一、前置拦截:筑牢源头防线,阻断风险入口

前置拦截是风险管控的第一道屏障,核心目标是在违规内容开播前就识别并阻断风险,重点针对账号注册、开播鉴权、内容准入等关键环节,从源头压缩黑灰产操作空间。


在账号风控层面,需强化多维度身份校验与集群行为识别。黑灰产此次能批量同步开播,关键在于绕过了常规的实名与人脸验证机制。对此,应引入设备指纹、行为画像等技术,建立账号风险评分体系:对同一IP地址、同一设备短时间内注册多个账号的行为,自动触发二次验证或直接限制注册;对异地登录、登录设备频繁更换、账号信息高度雷同的账号,标记为高危账号并限制开播权限。同时,接入跨平台黑名单共享机制,将已被其他平台封禁的主播身份信息、设备指纹同步至系统,杜绝“换马甲重生”的可能。


在开播鉴权与内容准入层面,需堵住推流接口漏洞并强化预审机制。此次事故中,黑灰产利用直播推流接口漏洞直接注入违规内容,绕过了前置审核。平台应开展全面的接口安全审计,对所有推流接口实施严格的权限验证与参数校验,采用加密签名机制防止非法调用。对于高风险直播场景(如私密直播间、新账号首次开播),需实施直播内容预审:要求提交直播主题、脚本框架等信息,通过AI快速筛查违规风险;对未通过预审的账号,暂不开放推流权限。此外,可借鉴商品链路管控思路,对直播中可能涉及的敏感领域(如医疗、保健品、情感调解),要求主播提前提交相关资质证明,未达标者禁止开播。

阅读全文>>

标签: 技术 快手 风险 拦截 管控

评论(0) 浏览(404)

技术是武器,但真正让你走得远的,是解决问题的能力

2025-12-21 杜世伟 Message

近几年,我经常遇到这样的场景:年轻人焦虑地问,“我是不是要学更多技术?是不是技能越多,我才能更安全?”
我完全理解这种焦虑,因为技术变化太快了,每一次浪潮都让人觉得如果不赶紧追,就会被世界甩下。

但逐渐地,我愈发清晰地意识到一件事——

技术是武器,是工具,但真正让你走得更远的,是你用技术去解决问题的能力。

这是一个简单,却极少被认真思考的认知。

01 技术不是稀缺品,能力才是

过去几十年,技术学习门槛一直在下降。
以前,学编程需要昂贵的课程和复杂的环境;
现在,一个浏览器就能写代码,AI 还能实时指导你。

过去,懂服务器部署的人凤毛麟角;
现在,云平台一键部署,文档和教材随手可得。

技术越来越普及,工具越来越智能,所以技术本身的价值在下降。

阅读全文>>

标签: 技术 团队 质量 效能

评论(0) 浏览(407)

决定技术团队上限的,不是技术本身,而是管理者的变革能力

2025-12-1 杜世伟 Message

在技术驱动的商业环境中,技术管理者的角色正在发生深刻变化。从过去的项目协调者、资源调配者,转变为组织技术能力增长的推动者与变革的核心力量。对于现代技术管理者而言,推动持续改善已不仅是一项职责,更是其价值的重要体现。

01 推动研发效能提升:构建可持续的交付能力

研发效能是技术组织的生命线。面对业务增长、竞争加剧以及技术复杂度提升,传统的工作方式往往无法满足新的要求。技术管理者需要从体系化的角度出发,通过流程优化、工具链升级、工程实践完善等方式提高团队整体交付能力。

包括但不限于:

  • 建立明确的工程标准与质量基线

  • 引入自动化测试与持续交付流程

  • 优化需求分析、设计与评审机制

  • 推动透明可量化的效能指标体系

这些举措不仅提升研发效率,也为组织在复杂环境下的稳定发展提供保障。

阅读全文>>

标签: 技术 团队 质量 效能

评论(0) 浏览(442)

代码是资产还是负债?

2025-9-14 杜世伟 Message

代码既是资产,也是负债—— 其属性并非绝对,而是由代码的质量、维护成本、业务价值三者共同决定的动态平衡。理解这一 “双重性” 是软件工程和企业技术管理的核心认知之一。

一、代码作为 “资产” 的核心特征

当代码能够持续为组织创造价值,且维护成本低于其产出价值时,它就是核心资产。具体可以体现在以下维度:

1. 直接创造业务价值

代码是软件产品的 “物理载体,所有软件功能(如支付交易、支付结算、用户互动)均通过代码实现。高质量代码能:

l  支撑业务流程自动化,降低人力成本;

l  支撑海量用户,实现流量与商业变现;

l  构建核心技术壁垒,形成行业竞争优势。

阅读全文>>

标签: 代码 资产 负债

评论(0) 浏览(598)

什么是CrewAI?

2025-7-27 杜世伟 Message

CrewAI 是一款开源的 Python 框架,专为构建和协调多智能体 AI 系统而设计。以下是关于它的详细介绍:
  • 核心概念
    • 智能体(Agent):是 CrewAI 中的团队成员,每个智能体都有特定的角色、目标、背景故事和工具。例如,“市场研究员” 角色的智能体,其目标可能是调研市场趋势,背景故事可以是具有多年市场调研经验,工具则可以是上网搜索、数据分析等。
    • 任务(Task):是分配给智能体的具体工作,需要清晰、可执行,如 “调研并总结 2024 年第二季度 AI 领域最重要的 5 个技术突破”。
    • 工具(Tools):是 AI 团队可使用的 “装备”,CrewAI 可集成各种工具,常见的有搜索引擎工具,还支持开发者自定义工具扩展。
    • 团队(Crew):是由定义好的智能体和任务组合而成,并设定一个协作流程,如串行执行或并行执行。一旦启动,AI 团队就会自主工作,直到所有任务完成。

阅读全文>>

标签: crewai ai

评论(0) 浏览(550)

当改变不了别人时,就默默地改变自己

2025-5-21 杜世伟 Message

在职场中,我们常常会遇到这样的情况:同事的沟通方式让人不适,领导的管理风格难以认同,流程制度存在诸多不合理……当我们试图提出意见,想要推动改变时,却常常碰壁。于是,有人会感到沮丧,甚至质疑自己的价值。

但职场的现实是,你无法轻易改变别人,更难在短时间内改变制度和环境。毕竟,每个组织都有它的运行惯性,每个人也有自己的思维模式与行事习惯。与其一味消耗自己去对抗,不如学会转个角度:改变不了别人,就默默地改变自己。

1. 改变心态

心态是第一道关卡。面对不理想的处境,如果总是陷入抱怨和焦虑,只会让自己更被动。比如领导布置的任务不够清晰,与其纠结为什么别人不说明白,不如主动确认细节,避免返工。把注意力从“他们为什么不改”转向“我能做些什么”,就是心态的转变。

阅读全文>>

标签: 职场 沟通 改变

评论(0) 浏览(556)

从技术专家到战略领袖:成就技术总监的路径与思维

2025-2-27 杜世伟 Message

要成为技术总监(CTO),不仅仅是技术能力的积累,还需要培养战略眼光、领导力以及跨部门沟通的能力。让我们从三个方面详细聊聊:

一、如何成为技术总监

成为技术总监通常需要经过多年的经验积累。你不仅需要技术能力,还需要管理和领导能力。以下是一些必要的路径:

  1. 从技术岗位做起

    • 大多数技术总监都曾在技术开发岗位上工作多年,积累了深厚的技术基础。你需要熟悉至少一种编程语言,并且有实际的开发经验。
    • 从开发工程师做起,逐步积累在项目中的经验,解决复杂问题,提升技术深度。
  2. 成为技术团队的领导者

    • 随着经验积累,你可以逐步承担更多的责任,比如成为技术团队的负责人、技术经理或者工程经理。这时候你需要学习如何管理团队,协调不同成员的工作,解决团队中的冲突和问题。
    • 领导团队的同时,还要帮助团队成员成长,提升他们的技术能力和职业发展。
  3. 增强跨部门沟通与合作能力

    • 技术总监不仅要管理技术团队,还需要与产品经理、设计师、运营等非技术部门密切合作。这要求你具备良好的沟通能力,能够理解并转化业务需求为技术解决方案。
    • 你还需要参与公司层面的战略讨论,了解业务方向,并确保技术架构和产品开发方向与公司整体目标对齐。
  4. 培养战略思维与技术视野

    • 技术总监不仅要有技术的深度,还需要有广阔的技术视野,能够为公司制定长期的技术发展战略。

阅读全文>>

标签: 技术 战略 cto 技术总监

评论(0) 浏览(1000)

如何给自己充电?

2025-1-2 杜世伟 Message

给自己充电可以从以下几个方面入手,具体方式可以根据个人喜好和需求调整:

1. 身体充电

规律作息

  • 保持良好的睡眠习惯,避免熬夜。
  • 午间小憩,有助于恢复精力。

运动锻炼

  • 每天进行适量运动,如跑步、瑜伽、散步,促进身体活力。
  • 拉伸放松肌肉,缓解身体疲劳。

健康饮食

  • 保证三餐营养均衡,多摄入蔬菜水果。
  • 少喝含糖饮料,多喝水或茶。

阅读全文>>

标签: 思维 充电 运动 心理

评论(0) 浏览(1087)

告别2024,迎接2025:深耕梦想,向前而行

2025-1-1 杜世伟 Message

告别2024,迎接2025:深耕梦想,向前而行

时光如水,转眼间,2024年已悄然走到尽头。站在岁末的节点,回顾这一年的点滴,我们发现:每一次相遇、每一段坚持、每一次成长,都在不经意间成为了人生画卷中不可或缺的一笔。而此刻,当2025的钟声即将敲响,我们怀揣期待与憧憬,准备翻开新一年的篇章。

回首2024:遇见与成长的故事

2024年,是一个属于“遇见”的年份。这一年,我们在旅途中不断发现新的可能。或许是一次意外的邂逅,或许是一个突如其来的契机,让我们打开了新的世界,也重新审视了自己。无论是工作、生活,还是情感,所有的“遇见”都为人生增添了鲜活的色彩。

当然,遇见的背后,更多的是坚持的力量。无论是面对复杂的项目,还是艰难的抉择,那些看似普通的日子,我们用努力与坚持为梦想铺平了道路。正因为如此,我们看到了自己的进步,也体会到了成长的意义。

成长往往伴随着阵痛。这一年,或许也有遗憾,也有放弃。但正是这些经历,让我们更加清楚:前行的路上,没有所谓的失败,只有积累的经验。最终,我们以成长为礼,将这一年画上了一个充满感激与满足的完结句号。

阅读全文>>

标签: 深耕 突破 告别 2024 2025 前行

评论(0) 浏览(851)

Powered by emlog 沪ICP备2023034538号-1