AI导航

AI 写的代码能直接上线吗?合并之前先过这 4 道安全检查

Ai问答
3 min read
0 次阅读

AI 写的代码不能直接上线。不是它写得差——很多时候它生成的代码看着工整、跑起来也没报错——而是它对"安全"没有真正的敬畏心:它会顺手把密钥写进代码,会忘了校验用户输入,会给每个接口都开最大权限。合并之前过一遍下面这 4 道检查,十分钟能挡掉大部分线上事故。

检查一:密钥和依赖,别让秘密躺在代码里

AI 最常见的坏习惯是把 API Key、数据库密码直接写成字符串常量。它这么写是因为训练数据里有大量示例这么写,不是因为这样做对。

检查方法很机械:全局搜一遍 key、secret、password、token 这些词,看有没有硬编码的凭证;确认所有密钥都走了环境变量或密钥管理服务。其次看依赖:让 AI 引入新库时,问它一句"这个库的最新稳定版是多少、有没有已知高危漏洞",版本太旧或长期没人维护的库直接换掉。个人项目至少做到前者,团队项目两条都要进 CI 检查。

检查二:输入校验,凡是用户能碰到的都要防

SQL 注入、命令注入、路径穿越,这些老问题在 AI 生成的代码里一点没少。AI 写查询时经常直接拼接字符串,写文件操作时经常不校验路径。

重点看三个地方:所有拼进 SQL、shell 命令、文件路径的字符串,是不是都经过参数化或白名单校验;上传文件的类型和大小有没有限制;错误信息会不会把堆栈和内部路径吐给前端。改法不用复杂,原则就一条:不信任任何外部输入,包括你以为"只有内部人会调"的接口。

检查三:认证和授权边界,默认拒绝而不是默认放行

AI 生成的接口有个倾向:先让功能跑通,权限以后再说。结果就是很多接口"能调",但没校验登录态,或者校验了登录、没校验"这个用户有没有资格操作这条数据"。

合并前逐个接口过一遍:要不要登录才能调?登录了能不能操作别人的数据?管理接口有没有二次确认?记住一个判断标准:AI 默认给你的是"功能正确"的代码,"权限正确"需要你显式要求。以后让 AI 写接口时,直接在需求里加一句"每个接口先写权限校验",能省掉一半返工。

检查四:让 AI 做二审,人工做终审

前三道是查具体问题,这一道的分工是流程。正确姿势是:让 AI 先审一遍自己的代码,提示词写成"以安全审计视角 review 这段代码,列出所有可能的注入、越权、敏感信息泄露风险,按严重程度排序";然后人再看一遍 AI 标出来的风险点,决定修不修。

注意顺序不能反:人先看容易漏,AI 先看容易把小问题夸大。AI 的二审报告里,凡是它说"可能有问题但不确定"的地方,就是你最该亲手验证的地方。另外,安全检查不能替代测试——至少把核心流程的自动化测试跑通再合并,AI 写的测试用例本身也要抽查,它也会写出"永远通过"的假测试。

最后记住责任归属

AI 不背锅。代码是谁合并的,线上出事就是谁的责任。这 4 道检查的本质是把"你以为 AI 考虑到了"的东西,变成"你亲手确认过"的清单。团队里可以把这份清单做成 PR 模板,每次 AI 生成的代码合并前逐项打勾;个人开发者至少养成习惯:密钥、输入、权限这三处,永远不跳过。

推荐工具

NVIDIA Chat with RTX AI聊天 Chat with RTX 是 NVIDIA 面向 RTX 电脑的本地 AI 聊天工具,可围绕本地文档和视频资料做问答,适合重视隐私、离线检索并具备硬件条件的用户更适合资料不便上传云 HuggingChat AI聊天 HuggingChat 是 Hugging Face 的开源模型聊天应用,支持 Omni 自动选模型,也可手动选社区开放模型对话。它适合体验开源模型、技术探索和问答,结果可能不稳定,重要内容需复核。 纳米AI搜索 AI搜索 纳米AI 是 360 旗下 AI 搜索和智能体入口,支持文字、语音、拍照提问、多模型协作与内容创作,适合中文用户做日常搜索、学习问答、移动查询、热点追踪、生活决策、知识整理和轻量创作。 Qwen Chat(通义千问) AI聊天 Qwen Chat 是Qwen 大模型聊天助手,支持Qwen 模型聊天、写作和编程问答,适合中文用户和开发者完成 AI 对话、资料问答和任务协作,适合上线前核对权限、成本和资料质量。 DuckDuckGo AI Chat AI聊天 DuckDuckGo AI Chat 适合重视隐私的普通用户使用,围绕隐私 AI 聊天、免账户使用和多模型问答提供对话式 AI 支持和任务协作能力,适合上线前核对权限、成本和资料质量。 Goody-2 AI聊天 Goody-2 是以极端安全和伦理对齐为特色的 AI 聊天助手,常用于观察模型拒答边界、内容安全策略、保守输出体验和 AI 风险讨论,更适合作为安全边界样本使用前应理解它偏实验性质,不适合。