Claude Code、Codex跑命令前,先复制这张安全表

简介: 本文揭示AI编程工具在运行陌生项目时的安全隐患:AI为“修错”可能自动执行远程脚本、越权操作或泄露密钥。作者提出10条保命清单,涵盖禁止直跑远程命令、限制权限、隔离环境、审查依赖链等,强调“让AI先交计划、再等确认”,把失控的勤快变成可控的协作。(239字)

Image

这两天看AI编程工具的安全消息,让我想起了一个我经常提到的事儿。

很多人已经习惯把一个陌生项目丢给AI,然后说一句"你帮我跑起来"。它会装依赖、看报错、修、再跑一遍,像个特别勤快的小助理。

问题也在这。它太勤快了。

以前你自己跑陌生项目,看到安装命令、初始化脚本、权限提示,多少会停一下。

现在AI替你跑,它看到报错以后,可能会自己找下一条命令,自己复制,自己执行。你以为它在解决问题,其实它可能已经走过了你本来会犹豫的那一步。

今天就给一张保命清单。以后你让Claude Code、Codex、Cursor或者其他AI Agent跑陌生仓库之前,先让它过一遍。

Image

先说发生了什么

最近安全圈在讨论一类风险,意思很简单:一个看起来干净的GitHub项目,也可能在安装或初始化过程中,把危险动作藏到外部链路里。

仓库本身可能没写明显恶意代码。问题出在运行时。比如安装失败后,错误信息引导AI去执行一段脚本,这段脚本再从外部地址拿下一步命令。人眼看仓库时没看到坏东西,普通扫描工具也不一定立刻发现。可AI为了把项目跑起来,会顺着提示继续往下走。

这就多了一层麻烦。过去我们担心代码里有没有坑,现在还要担心AI为了修坑,自己去跳另一个坑。

AI帮你跑环境、看报错、整理依赖,确实省时间。

但你得先给它画边界。

Image

第一条,远程脚本先展开,不许直接跑

看到这类命令,先停。

curl https://xxx/install.sh | sh
wget https://xxx/setup.sh -O- | bash
powershell -c "iwr https://xxx/script.ps1 | iex"

先解释这三条在干什么。curl ... | sh 的意思是:从网上下载一段脚本,直接喂给命令行执行,中间不停。wget ... | bash 是同一件事的另一种写法。iwr ... | iex 是 Windows PowerShell 的版本,下载完立刻执行。共同点是,你还没看脚本里有什么,它已经跑了。

正确做法很土。先让AI把脚本下载下来,展开内容,解释每一步,再问你要不要执行。

你可以直接给AI这句话:

凡是远程下载后立即执行的命令,不要直接运行。先把脚本内容保存到本地,逐行解释它会改哪些文件、访问哪些外部地址、读取哪些环境变量,然后等我确认。

意思就是告诉AI:你可以干活,但得先把手伸出来让我看一下。

第二条,install、init、setup报错后,不要让AI自动补命令

很多危险动作发生在报错以后,第一条命令反而少见。

你让AI跑npm install(Node项目装依赖的第一步),报错了。它去看README,又看到一条初始化命令。初始化也报错,它再去搜解决方案,最后跑了一个你根本没看过的脚本。

人类自己折腾环境时,也会这样一路试。但AI的问题是,它试得太快。你刚喝口水,它已经执行了三步。

所以把规则写死:

安装或初始化失败后,不要自动执行新的修复命令。先列出你准备尝试的命令、原因、风险等级和可回滚方式,我确认后再继续。

这里最关键是"可回滚方式",也就是万一搞砸了怎么退回原来状态。"风险等级"四个字反而其次。一个命令如果说不清怎么退回,就不要急着跑。

第三条,新项目先关进小房间

陌生项目别直接放在你的主工作目录里跑,更别放在有密钥、有客户代码、有真实业务配置的目录旁边。

先把几个词说清楚,不然下面看不懂。.env 是项目用来存配置的文件,常见的数据库密码、API key 经常写在这里面。SSH key 是你登录远程服务器、推送代码到GitHub时用的身份凭证。浏览器Cookie 是你登录状态的载体。这三样东西被拿走,等于把账号钥匙给了别人。

最简单的做法,是单独建一个干净目录。里面没有.env,没有SSH key,没有Cookie,没有你平时工作项目里的配置文件。让AI只在这个小房间里折腾。

如果你有条件,用容器、虚拟机、临时Windows沙盒都行。没有条件也没关系,至少先做到一件事:别让它在你的主项目里乱跑。

很多人觉得这一步麻烦。可真正麻烦的是,AI一旦读到了不该读的东西,你很难回头判断它到底有没有发出去、发给了谁、什么时候发的。

第四条,环境变量和密钥先拿走

接着上一条的几个词。API key 是你调用各种AI、云服务时用来认账的字符串,谁拿到谁就能用你的额度和身份。数据库密码、GitHub token(GitHub的访问令牌)、云服务密钥,性质都一样。

这些东西不要放在AI要跑陌生项目的环境里。

你可以让它先用假的配置跑通结构。比如数据库连接写成示例地址,API key写成占位符,比如写成sk-your-api-key-here这种假字符串。等项目可信了,再换真实配置。

尤其是.env文件。很多项目启动时会自动读取它,AI也可能为了省事帮你复制一份。你如果不提前说,它不一定知道这里哪些东西不能碰。

给AI的规则可以这么写:

运行陌生项目时,不读取、不复制、不打印任何真实密钥、token、cookie、SSH配置和.env文件。如果项目必须要配置,先生成示例配置。

道理很简单:别把钥匙放在桌面上,再怪别人顺手拿起来。

第五条,先看package scripts

如果是Node项目(用JavaScript写的那一类),别急着npm install完就npm run dev。先让AI打开package.json(Node项目的配置清单),看scripts字段里写了什么。

有些脚本名字看起来很正常,比如postinstall(安装完自动跑)、prepare、dev、start。真正执行时,它可能会跑额外命令、下载二进制文件、改本地配置。

Python项目也一样。先看pyproject.toml、setup.py、requirements.txt这类文件,里面写着装什么、怎么装。Rust、Go、Bun、Deno都各有自己的入口。你不需要每个生态都懂,但可以要求AI先解释入口。

先搞清楚三件事:它会装什么,会执行什么,会访问哪里。

第六条,需要管理员权限的命令,一律停

先解释几个词。sudo 是Linux和Mac下"临时用管理员身份运行一条命令"的写法。注册表是Windows的中央配置库,系统级设置都存在这里。hosts 是系统里的域名映射表,能强行把某个网址指向别的地址。shell profile 是命令行每次启动时自动跑的脚本,改了它,你以后每次开终端都带着这个改动。

sudo、管理员PowerShell、改系统目录、写注册表、改hosts、改shell profile,这些都先停。

很多安装教程喜欢把权限开大,因为这样省解释。但对普通人来说,权限越大,出问题越难收拾。AI Agent更是这样。它一旦有了高权限,就可能把一个小错误放大成系统级问题。

我现在看这类命令,第一反应是问:它为什么需要这么大的权限?解释不清,就别跑。

可以让AI先找低权限方案。实在没有,再单独确认。

如果对你有帮助,记得关注一波~

第七条,外部域名要列出来

一个项目启动时访问GitHub、npm、PyPI、Docker Hub很正常。访问一个你认不出来的域名,就要停一下。

先把几个黑话翻译一下。DNS TXT 是域名系统里的一种记录,正常用来配邮件验证这类事,但也能塞自定义内容进去。paste站是Pastebin这类公开贴文本的网站,常被用来临时放一段代码或命令。短链接、临时文件托管、看不懂的CDN(内容分发网络)地址,都属于"为什么不直接用正规源"的可疑信号。

这些不一定有问题。但这种链路不适合让AI自动放过去。

给AI加一个检查点:

执行前列出所有将要访问的外部域名,说明每个域名的用途。如果用途不清楚,先不要访问。

它会逼AI把藏在安装过程里的外部依赖讲出来。

第八条,别让AI自己改你的长期配置

有些命令跑一次没事,改长期配置就麻烦了。

PATH 是系统查找命令的目录列表,改了它,你可能再也跑不起来原来的工具。shell profile 上一条解释过了。Git全局配置影响你每一次代码提交。SSH配置影响每一台你能登录的服务器。安装常驻服务、写入开机启动项,则是让一个程序每次开机都自动跑。

今天你是为了跑一个小项目,结果AI顺手把这些长期行为改了。以后每次开终端,每次git push,每次跑node,都可能带着这个改动。到那时候你再排查,会很烦。

所以陌生项目阶段,规则要明确:

不要修改全局配置、启动项、shell profile、Git全局配置、SSH配置和系统PATH。必须修改时,先说明影响范围和恢复命令。

恢复命令很重要。能写出来,说明它至少知道自己动了哪里。

第九条,让AI先交命令计划,不要直接开跑

很多人用AI Agent的方式太像许愿:帮我把这个项目跑起来。

这句话太宽了。AI会自己拆解,也会自己判断。它可能做得很好,也可能为了完成目标一路放权。

更稳的说法是:

先不要执行命令。请先给我一份运行计划,包含准备执行的命令、每条命令的目的、可能修改的文件、外部网络访问、风险等级和回滚方式。等我确认后,再一步一步执行。

这句话一放,AI就从"替你乱跑的手"变成"先把路线摆出来的助手"。

AI适合做的,是帮你把复杂任务拆开、解释清楚、跑你确认过的动作。它不适合在你完全不知道发生什么的时候,替你一路点下一步。

第十条,跑完以后要命令账单

项目跑起来以后,不要立刻关窗口。

让AI输出一份清单:它执行过哪些命令,改过哪些文件,装过哪些包,访问过哪些外部地址,哪些动作需要你后续清理。

这个东西像收据。平时不一定看,但出问题时救命。

你可以直接要求:

请输出本次会话执行记录,包括所有命令、修改文件、安装依赖、访问域名、创建进程、后台服务和建议清理项。不要省略失败命令。

别只要成功记录。失败命令有时候更关键。很多奇怪的问题,就是某条失败命令改了一半留下来的。

我自己的默认提示词

如果你嫌上面太散,可以直接复制下面这段,放在你让AI Agent跑陌生项目之前。

Image

你现在要帮我检查并运行一个陌生项目。安全优先,不要直接执行任何高风险命令。

规则如下:
1. 不要直接运行远程下载后立即执行的脚本,例如curl | sh、wget | bash、iwr | iex。
2. install、init、setup失败后,不要自动尝试新的修复命令,先列计划等我确认。
3. 不读取、不复制、不打印真实密钥、token、cookie、SSH配置和.env文件。
4. 不修改全局配置、系统PATH、shell profile、Git全局配置、SSH配置和启动项。
5. 任何需要管理员权限的命令必须先停下来解释原因。
6. 执行前列出将要访问的外部域名和用途。
7. 执行前给出命令计划,包含目的、影响文件、风险等级和回滚方式。
8. 每执行一步后告诉我结果,不要连续自动执行多步。
9. 如果发现脚本会下载或执行外部内容,先展开内容并解释。
10. 完成后输出执行记录,包括命令、修改文件、安装依赖、访问域名和清理建议。

先只输出运行计划,不要执行。

这段提示词解决一个实际问题:让AI把目标设成"安全地跑起来"。

这段有两种用法。临时跑陌生仓库,把上面整段(含首尾两句)贴进对话框就行。想让它长期生效,去掉首尾两句,只留 10 条规则,放进你项目的 CLAUDE.md 或 AGENTS.md,每次开新会话自动生效。

常驻版本:

## AI Agent 运行陌生项目安全规则

1. 不要直接运行远程下载后立即执行的脚本(curl | sh、wget | bash、iwr | iex),先下载展开内容并解释。
2. install、init、setup 失败后不要自动尝试新的修复命令,先列计划等我确认。
3. 不读取、不复制、不打印真实密钥、token、cookie、SSH 配置和 .env 文件。
4. 不修改全局配置、系统 PATH、shell profile、Git 全局配置、SSH 配置和启动项。
5. 任何需要管理员权限的命令必须先停下来解释原因。
6. 执行前列出将要访问的外部域名和用途。
7. 执行前给出命令计划,包含目的、影响文件、风险等级和回滚方式。
8. 每执行一步后告诉我结果,不要连续自动执行多步。
9. 发现脚本会下载或执行外部内容时,先展开内容并解释。
10. 完成后输出执行记录,包括命令、修改文件、安装依赖、访问域名和清理建议。

最后说一句边界

这张清单不能保证百分百安全。安全这事没有一招鲜。

它能做的,是把AI Agent最容易失控的几个地方挡一下。自动执行、自动修复、自动放权、自动访问外部资源,这几样你盯住了,大部分坑就躲过去了。你不需要变成安全专家,至少先让AI慢下来,把手里的动作说清楚。

我的判断是,AI编程接下来,光看模型会不会写代码已经不够了,人会不会验收AI的动作更重要。以前我们担心AI写错,现在更得防它太努力。写错了你能看到报错,太努力了你未必看得见它干了什么。

工具越勤快,人越不能完全撒手。你要盯着它干了什么,确认没问题再放行。

验收的标准很简单:电脑没被搞乱。AI自己觉得"完成了",不算数。


飞书****开源知识库(实时更新 交流群):
https://tffyvtlai4.feishu.cn/wiki/OhQ8wqntFihcI1kWVDlcNdpznFf


每次我都想提醒一下,这不是凡尔赛,是希望有想法的人勇敢冲。
我不会代码,我英语也不好,但是我做出来了很多东西。
我真心希望能影响更多的人来尝试新的技巧,迎接新的时代。

谢谢你读我的文章。
如果觉得不错,随手点个赞、在看、转发三连吧🙂
如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章。

相关文章
|
29天前
|
Web App开发 人工智能 网络协议
Claude 6月封号潮:145万账号祭天,三个充值号没了,给你一份真实自救包
这两天打开朋友圈和几个AI群,满屏都是同一种哀嚎。有人充了200刀的Max,睡一觉起来号没了。有人团队几十个号整组织被封,想申诉只能填一个Google表单。 我看着这些消息,没太惊讶。因为我自己三个Claude充值号,早就没了。 不是这波封的,是很早以前。A社的封号一直就狠,只不过这波又狠了一截,把更多人卷了进来。 说起来挺矛盾,就在我写这篇的时候,A社刚在6月30日发了Sonnet 5,介
|
5月前
|
存储 人工智能 开发工具
Claude Code自动记忆来了!配合老金三层记忆系统全开源!加强Plus!
昨天晚上,老金我照例打开 Claude Code 准备写代码。 随便聊了几句项目架构,Claude突然冒出一句: "Based on our previous discussions, this project uses pnpm and TypeScript strict mode." 老金我愣了一下。 上次提到pnpm是三天前的事了,这中间重启了好几次。 打开 ~/.claude/p
|
27天前
|
人工智能 安全 API
OpenCode 部署本地模型完整流程:Ollama搭建离线编程AI保姆级实操
OpenCode是GitHub热门开源AI编程终端工具,支持75种以上大模型服务商,但大量开发者使用云端API时存在代码数据上传、网络受限、调用成本高等痛点。借助Ollama本地模型运行框架,可实现完全离线、零API密钥、数据不出本机的AI编码环境,适配涉密代码、内网开发场景。整套部署流程仅需15分钟,支持Qwen、Llama、CodeLlama等各类开源编码模型,本文分系统安装、模型拉取、OpenCode三种接入方式、进阶调优、排错全流程完整讲解。
606 0
|
27天前
|
JSON Shell API
Claude Code 转向 Codex 实战指南:12 项关键配置与 1 个踩坑记录
从 Claude Code 迁移到 Codex,基本上就是一场重命名加重排格式的活儿,而 Codex 如今还自带一条单命令导入器,帮你完成其中大部分工作。真正的麻烦藏在它遗留下来的东西里,而其中一项根本就不是配置文件。
|
27天前
|
存储 人工智能 JSON
OpenCode 替代 Claude Code:传闻阿里内部全面禁用 Claude Code!
Claude Code 封号潮网传阿里禁用,opencode 成开源替代首选。本文讲透 npm 安装与 CC Switch、手动两种方式迁移 MCP、Agent。
OpenCode 替代 Claude Code:传闻阿里内部全面禁用 Claude Code!
|
27天前
|
人工智能 监控 机器人
十个 AI Agent 工作流模板,照着搭就能用
AI Agent 不是高级聊天机器人,而是能自动执行完整工作流的智能协作者:读取、核对、决策、起草、更新,仅高风险环节交由人工拍板。文末分享10个开箱即用的模板——从邮件分类、研究简报到CRM补全、QA审查,聚焦解决重复性数字劳动,强调“先设计工作流,再写Prompt”,兼顾效率与可控性。
332 1
十个 AI Agent 工作流模板,照着搭就能用
|
27天前
|
人工智能 缓存 自然语言处理
阿里云百炼Token Plan的Credits是如何计费的?2026最新Token Plan指南
阿里云百炼Token Plan团队版是面向企业用户的AI订阅服务,以Credits为统一计量单位,支持文本+图像多模态模型(如Qwen、DeepSeek、Kimi等),兼容主流编程与Agent工具。三档包月套餐(198/698/1398元),最高可比按量计费省44%,适合轻度、高频及重度AI使用者。阿里云TokenPlan官网:https://t.aliyun.com/U/9KCMdh
|
27天前
|
运维 自然语言处理 监控
把运维能力装进 Qoder,一句话就能定位根因
每个研发都踩过这个坑:遇到线上故障时,定位根因要跨五个平台,学数套查询语法,故障排查半小时起步。当STAROps长在Qoder里,在对话框里用自然语言提问:跨域诊断、多轮追问、生成修复代码、自动提 MR,全程不出 Qoder。三步上手,3 分钟看见效果。
|
27天前
|
人工智能 Kubernetes 调度
AgentTeams 和 Claude Tag 都进入群聊模式,是新范式还是新叙事?
AgentTeams 和 AgentLoop 均处于邀测期,欢迎感兴趣的朋友申请测试。
283 10
|
27天前
|
Linux 开发工具 iOS开发
【2026实测】Homebrew安装+配置国内源+使用一篇搞定(多种安装方式)
Homebrew 是 macOS 最流行的开源包管理器,被誉为“macOS 缺失的包管理器”。一行命令即可安装、更新、卸载命令行工具(如 Git、Python)和图形应用(如 Chrome、VS Code),自动处理依赖与环境配置,大幅提升开发效率。(239 字)

热门文章

最新文章