我用 TraeWork 对自己开发的小程序做了一次从头到尾的安全排查,查出多个高危漏洞并全部修复——我是个不懂安全的运维,这件事以前想都不敢想。
我是谁 & 遇到什么问题
我是阿远,基层运维一线人员,不是程序员。
前段时间我用 TraeWork 做了个微信小程序"定点随行"——给一线外勤运维兄弟用的点位标记和导航工具。小程序跑起来之后我挺高兴,功能都正常,界面也顺手,准备部署上线了。
但上线前一天晚上,我躺在床上突然想到一个问题:这个小程序存的是现场设备的位置数据,用户账号、群组信息、卡密全在里面。我编程基础约等于零,我怎么知道这东西安全不安全?
越想越慌:
- 我连"SQL注入"是什么都是听 TraeWork 说的,我哪知道我的代码有没有这个问题?
- 那40多个API接口,每个都要登录才能调吗?会不会有的忘加鉴权了?
- 腾讯地图的Key写在前端代码里,别人会不会扒出来盗用?
- 用户密码我怎么存的来着?好像……是明文?
我不是不想查,是我根本不知道该查什么。 让我去看安全教程?看不懂。让我去请安全工程师?我一个基层运维,哪有这个资源。
那天晚上我决定:让 TraeWork 帮我查。
我用了 TraeWork 解决了这件事
模式:
Work ☐ Code ☐ Design
我看到有同行用 TraeWork 做代码功能审计,那是专业开发者的玩法。我这边角度不一样——我是个不懂安全的运维,我关心的是另一个问题:这东西上线后会不会被人攻击。
我用的就是 TraeWork 的代码理解 + 安全分析能力。具体就一句话——把项目代码交给它,让它扮成安全审计工程师,从头到尾帮我查。
我不懂安全,但我懂怎么把自己的担心讲清楚。我告诉它项目用了什么技术、登录怎么做的、地图Key放在哪了,然后把我担心的几个点一条条列出来,让它挨个查。
它查完给我返回了一张表,按风险等级排好了序。看到结果我后背发凉——有好几个接口,任何人不用登录就能直接调,等于大门敞开着。
具体来说,TraeWork 帮我查出了这些问题并全部修复:
| 风险等级 | 问题 | 我的感受 |
|---|---|---|
| 高危 | 几个API接口没有任何鉴权,任何人不用登录就能调——查用户数据、删位置、改群组信息 | 吓出一身冷汗 |
| 高危 | 用户密码明文存储,数据库一泄露全员密码裸奔 | 后背发凉 |
| 中危 | 腾讯地图Key暴露在前端代码里,别人扒一下就能盗用 | 亏没上线 |
| 中危 | 部分数据库操作没用参数化查询,存在SQL注入风险 | 这个词都是它教我的 |
| 低危 | 管理后台没强制Token校验,理论上可以绕过登录直接访问 | 越想越怕 |
修复方案 TraeWork 也一并给了,不是光指出问题。每个问题都配了修复代码,我把鉴权逻辑抽成了公共中间件,新接口不会再漏加了。
我做出了什么
一份完整的安全审计报告 + 全部漏洞修复。具体修了这些:
- 所有数据库操作统一改成 PDO 参数化查询,从根上杜绝SQL注入
- 每个API接口加了鉴权中间件,进来先过鉴权,普通用户调不了管理接口
- 腾讯地图Key只存后端配置文件,前端代码里完全找不到,接口调用全走后端代理
- 用户密码改成哈希存储,密码重置需要旧密码验证
- 管理后台强制Token校验,没登录直接拒绝访问
- 全站配了HTTPS,别人没法在半路截数据
从"不知道安不安全"到"所有问题全部排查修复",一个晚上搞定。 如果让我自己来,这事儿根本做不了——不是时间问题,是我连该查什么都不知道。
效果展示
这是 TraeWork 帮我做安全审计时的对话过程,可以看到它在逐一分析每个风险点并给出修复方案:
小程序最终安全上线,目前稳定运行中:
经验 & 技巧总结
-
功能跑通 ≠ 安全没问题。 这是最重要的一条。我差点带着好几个高危漏洞上线了。不管你用AI工具做了多酷的东西,上线前一定单独做一轮安全排查。
-
不懂安全没关系,把项目信息讲清楚就行。 我不知道SQL注入具体怎么防,但我知道告诉TraeWork:“技术栈是PHP+MySQL,认证是自研Token,地图Key存在前端。” 它自己就知道该查什么。
-
把担心的点一条条列出来,别只说"帮我查安全"。 只说"查安全"它会泛泛而谈。我把自己担心的几个点列出来——接口有没有忘加登录验证、密码存得对不对、Key会不会被扒走——它会逐条查,还会主动查我没想到的问题。
-
让它按风险等级排序输出。 修复要有优先级。高危先修,低危后排。TraeWork排好的优先级清单直接照着做就行。
-
鉴权逻辑要抽成公共中间件。 别每个接口单独加,容易漏。抽成公共模块,新接口自动走鉴权,从机制上杜绝遗漏。这一点也是TraeWork主动建议的。
提示词参考
说实话,那晚我第一句话根本不是什么专业模板。 我就是把自己的担心原原本本说了出来:
那晚真实的提问(大白话版)
我做了个微信小程序准备上线,但我编程基础很差,想让你帮我看看有没有安全问题。
具体情况:
- 前端是微信小程序,后端是PHP+MySQL
- 用户登录后会给一个Token,7天过期
- 用了腾讯地图,Key我写在前端代码里了
- 用户密码我好像是直接存数据库的
我就想知道:
1. 有没有什么接口是不用登录就能随便调的?我怕有的接口忘加验证了
2. 用户密码这么存行不行?要不要加密?
3. 地图Key放在前端会不会被人扒走?
4. 还有没有别的问题是我没想到的?
你帮我挨个查一遍,有问题的地方直接给我改好的代码。
就这么几句话,TraeWork 就开始逐条排查了。 它返回的比我问的还全——我没想到的SQL注入它也查了,鉴权缺失的接口它也标出来了。
后来复盘整理的通用模板
后来我复盘的时候,把那次提问整理成了一个稍微规范点的模板,方便以后别的项目也能用。但你看得出来,核心还是大白话——把你知道的项目情况说清楚,把你的担心列出来,就行了。
我有一个项目准备上线,请帮我做一次安全检查。
项目情况:
- 前端:【微信小程序】
- 后端:【PHP + MySQL】
- 登录方式:【自研Token,7天有效】
- 用到的第三方服务:【腾讯地图API】
- 部署环境:【Linux服务器,准备上HTTPS】
请帮我查这几个方面:
1. 有没有接口是不要登录就能调的?逐个检查一下
2. 密码存储方式安不安全?要不要改?
3. 第三方服务的密钥有没有暴露在前端代码里?
4. 数据库操作有没有SQL注入的风险?
5. 还有没有别的安全问题是我可能忽略的?
每个问题告诉我:严不严重、在哪个文件、怎么改,直接给我改好的代码。
最后按严重程度排个序,我先修最要紧的。
为什么这样写而不是写专业术语: 因为我真不懂那些术语。什么"水平越权"“重放攻击”,我写不出来,写出来也不是我的风格。但你用大白话把项目情况和担心说清楚,TraeWork 照样能帮你查全。提示词不需要专业,需要的是把信息交代清楚。

