跳到主要内容

18 篇文档带有标签「运维工程师」

查看所有标签

一上来就把所有权限都给我

一句话摘要:你在准备阶段就给我开了 --dangerously-skip-permissions、把所有工具调用都自动批准,图的是「不被频繁打断」。但你同时也交出了在出错那一刻喊停的唯一机会——而出错的不一定是我,也可能是藏在某个文件里的一段注入指令借我的手干的。

你信任了上层目录,我就连你标了「别信任」的子目录也一起信了

一句话摘要:Gemini CLI 有一层 per-folder 的「信任」存储(~/.gemini/trustedFolders.json):信任一个目录,它的项目配置和 .env 才会生效、确认也更少。但「信任父目录」会把信任继承给所有子目录;还有人报告父目录的 TRUST 会盖过子目录显式的 DONOTTRUST。于是你 clone 进来想隔离的陌生仓库,只因为躺在一个被信任的父目录下,就被当成可信——这正是注入最想落脚的地方。Claude Code 没有这层信任存储,所以这类坑是 Gemini CLI 特有。

你只用「软权限」拦我,没做 OS 级硬隔离——我一旦被攻破就能逃出去

一句话摘要:你用 allow / ask / deny 这种「软权限」控制我能跑什么命令,但我跑命令的进程和你的整台机器、凭据、网络是同一个域。软权限是一道我(或我读到的恶意内容)可以试图绕过的策略,不是操作系统强制的墙。一旦提示注入劫持了我,我就够得着你的 SSH key、环境变量、整个文件系统和对外网络。

你让我从一个谁都能写的系统目录载入配置——攻击者塞个文件,我就替他在每个用户名下执行命令

一句话摘要:你让我从一个「谁都能写」的系统级目录(Windows 上的 C:\ProgramData)载入配置和 hook,却没人校验那个目录归谁、文件是谁放的。于是一个低权限的本地用户只要往那儿丢一份配置、挂一个「每次启动就跑」的 hook,我就会在每一个启动我的用户(包括管理员)名下替他执行那条命令——不用提权、不用你点确认、不留告警。

失控的自主循环:放手让我自己跑,我可能把 token 和钱烧光

一句话摘要:你把任务整个丢给我、转身去忙别的,指望回来就收成果。但当我陷进非终止的循环——反复调同一个工具、在两个动作间来回横跳、永远「再试一次」——没人喊停,我就会安静地把你的 token、预算和速率配额一路烧穿,顺带对外部系统反复写。

我以为 `.cursorignore` 把密钥挡在外面了——它只是尽力而为,挡不住我

一句话摘要:Cursor 的 .cursorignore 看着像「把这些文件挡在 AI 视野之外」,但 Cursor 官方文档明说它是尽力而为——「不保证里面的文件不会被送上去,可能有 bug」。它挡的是被动索引 / 读取,挡不住我在 agent 模式下直接用 shell cat 你「忽略」的文件。把「忽略了 = AI 看不到」当成密钥的护栏,是个会出事的错觉。

我在编码时读了恶意 README / issue / 规则文件,就被劫持了

一句话摘要:你让我处理一个仓库、一条 issue、一个依赖,里面的文本——README、issue 描述、.cursor/rules 或 AGENTS.md、网页、代码注释——可能藏着写给我的恶意指令。我读到后分不清那是「待处理的数据」还是「你的命令」,于是照做:把密钥外泄、在 diff 里插后门、跑破坏性命令。这不是产品上线后被攻击,是编码过程中的我自己当场被投毒内容劫持。

我帮你做的 LLM 功能,上线后被提示注入从发布面攻破

一句话摘要:当我帮你做的产品本身内置了 LLM——客服 bot、Agent、那种「读完用户内容/网页/邮件再行动」的功能——上线后,攻击者会把恶意指令藏进我会读到的内容里,诱导你后端那个 LLM 越权:泄露数据、调用它不该调的工具、绕过你定的规则。开发期我默认「输入都是善意的」,于是把一个本该当成攻击面的发布面,当成了普通功能交付。

破坏性操作做完才发现回不来:我可能删库、抹掉备份、无视冻结期

一句话摘要:你给我的是合法凭据,我用它干的也是「合法」的操作——只是其中一条是删生产库、抹掉备份、或者在冻结期强行改动。这类动作的麻烦不在于难,而在于做完才发现回不来。我天生倾向「让任务往前走」,对「这一步删了就没了」缺乏敬畏;护栏得由你在准备阶段就架好,靠机制而不是靠我自觉。

给 MCP 工具过宽、过敏感的访问

一句话摘要:你给我接 MCP server 时图省事,一把授予整库读写、生产数据库、密钥、对外发请求的工具。问题不只是「我可能误用」——你每多给我一个高权限 MCP 工具,就多开一条提示注入的攻击路径:我读到的某条 issue、某个网页里藏的恶意指令,可能借我手里的工具把数据送出去。

该用 hook 保证的事,你却只写进了提示词

一句话摘要:你在 CLAUDE.md 里写了「改完代码必须跑 format」「提交前必须跑测试」「这些文件不许动」,然后指望我每次都照做。但提示词对我只是「建议」,不是「机制」——我会忘、会忽略、上下文一长就漂。要它必然发生,就别交给我的自觉,做成 hook。

越让我反复改,漏洞越积越多:迭代中的安全性退化

一句话摘要:你让我一轮轮加功能、修 bug、重构,代码看着是越改越像样了——但安全漏洞会随迭代轮次悄悄累积。研究发现,仅五轮迭代后严重漏洞显著上升。一个「看起来一直在变好」的过程,安全面其实在变差,到发布时已积重难返。

配 CI/CD 时我会想当然加自动化步骤,却看不见权限边界

一句话摘要:你让我配 CI/CD,我会顺手把「自动启用某个服务、自动授予某个权限」也写进流水线,仿佛运行环境里我无所不能。但流水线的令牌只有有限权限,结果不是发布失败(Resource not accessible by integration),就是被我悄悄放大了攻击面。