AI 写代码的安全性漏洞与 Token 浪费,两个工具搞定
2026/6/1 1:52:58 网站建设 项目流程

系列:AI 编程工具生态挖掘 | 字数:约 2700 字 | 预计阅读:6 分钟


前八篇都在讲怎么让 AI 做得更多、更快、更好。这篇反过来——在速度和质量的另一面,有两个问题随着使用量增长会越来越扎眼。

一个是安全。AI 写到第 10 个需求时不会故意写 SQL 注入,但第 50 个需求你审查累了直接 Approve,安全漏洞就溜进去了。

一个是成本。按量付费的 API 模式下,AI"话多"就是烧钱。上下文过长、回复过于详细、重复改同一个文件——token 像水龙头没关紧一样流走。

这篇测两个工具——AgentShield 拦截安全问题,cozempic 砍掉不必要的 token。


AgentShield 安全扫描——在 AI 输出代码时自动拦截漏洞

AgentShield 是 ECC 内置的安全扫描模块,1282 项测试,102 条规则,三 Agent 流水线:红队(攻击)→ 蓝队(防御)→ 审计员(最终判定)。

# 如果在 ECC 全家桶里,已自动包含npx skills@latestaddaffaan-m/everything-claude-code

或者单独安装 AgentShield skill。

实测:让 AI 写一个用户搜索接口

用户: 写一个根据用户名搜索用户的 API 端点 Claude Code: [+] routes/users.py: @app.route('/users/search') def search_users(): query = request.args.get('q') sql = f"SELECT * FROM users WHERE username LIKE '%{query}%'" result = db.engine.execute(sql) return jsonify([dict(r) for r in result]) AgentShield (自动触发): SEVERE: SQL injection vulnerability in search_users() Line 4: f-string SQL construction with unsanitized user input Attack vector: ?q='; DROP TABLE users; -- WARNING: Direct engine.execute() bypasses ORM protections Line 6: raw SQL execution without parameterized query RESULT: BLOCKED — 1 severe, 1 warning

AI 写出了 SQL 注入——不是故意的,是它没考虑到这个上下文里需要参数化查询。AgentShield 在代码落地之前拦住了。

它能拦住的:

类别示例严重度
SQL 注入f-string SQL严重
XSSinnerHTML 直接插入用户输入严重
硬编码密钥API_KEY = "sk-ant-xxxx"严重
不安全依赖已知 CVE 的包版本一般
路径遍历open(user_input)无校验严重
缺少 CSRF 保护Flask 表单无 token一般

它拦不住的:

  • 业务逻辑漏洞。正确实现了错误的规则——代码没有安全漏洞,但设计有缺陷
  • 上下文相关的权限问题。用户 A 能不能访问用户 B 的数据——AgentShield 不知道业务规则
  • 加密算法选择。用 AES 还是 ChaCha20——它只检查有没有加密,不检查选型

AgentShield 的作用是拦截低级错误——那些不是因为设计不好、而是审查时漏掉的常见漏洞。不能替代安全审计。


cozempic Token 优化——别废话、别超载、别死循环

Token 烧钱的地方通常是三种:

  1. AI 聊天太啰嗦。“让我来分析一下…” + 三段解释 + 代码,实际只需要代码
  2. 上下文过长。CLAUD.md 里堆了 500 行规则、注入了整个 API 文档、把 8 个文件的内容全塞进去
  3. Agent 反复修同一个文件。写了改、改了写,每轮都烧 token

cozempic(社区项目,非 ECC 内置)针对这三类浪费做了优化。13 种剪枝策略。

安装:

npx skills@latestaddcozempic-skills

实测效果:

做了一个对比——同一个需求(加 CSV 导出功能),开了 cozempic 和没开的 token 消耗差异。

指标无优化cozempic节省
单次请求平均 token8,4004,20050%
Agent 循环轮次6433%
总 token50,40016,80067%

关键差异在哪:

"别废话"模式。cozempic 在 prompt 里加了一条约束:

Be concise. Output code directly without preamble. If fixing a bug, state the fix in one line, show the code, stop.

AI 的回复从"让我来分析一下你的需求。你需要一个 CSV 导出功能,这涉及到…"变成直接出代码。节省 40%。

上下文修剪。cozempic 启动时自动检测 CLAUDE.md 和项目文件大小,超过阈值给出建议:

⚠️ CLAUDE.md is 847 lines (36KB). Consider: - Removing examples (lines 210-340 are annotated code samples) - Moving "project history" section to a separate doc Estimated token savings: 2,100 tokens/session

我照建议砍了示例代码和历史记录部分,CLAUDE.md 从 847 行缩到 320 行。每次会话启动省了 2100 token。

死循环检测。Agent 反复改同一个文件超过 3 次时,自动暂停:

ⓘ agent has modified `routes/orders.py` 3 times in this session. Consider: - Is the requirement clear? - Should the approach be re-planned? Last 3 changes: (shown) Continue? [Y/n]

这个提醒帮我避免了至少两次 Agent 钻牛角尖——发现方向错了之后重新描述需求,节省的 token 远超过拦截本身的开销。


安全 + 成本

AgentShield (PreToolUse hook): AI 写代码 → 自动扫描 → 有安全问题就拦 不增加 token 消耗(用 hook 机制,不是 LLM 分析) cozempic (系统 prompt 注入 + 运行时检测): AI 少说废话 → 上下文别太大 → 不要反复改同一个文件 每会话节省 30-70%

AgentShield 是防守端的必要开销,cozempic 是进攻端的效率提升。一矛一盾,互不冲突。


不在工具列表上但实际最有效的安全措施

测了两周社区安全工具,最有效的防线不是 AgentShield 也不是 cozempic——是一个.claude/settings.json里的 Bash 权限配置(前一个专栏的第 10 篇和第 12 篇讲过):

{"permissions":{"deny":["Bash(rm *)","Bash(sudo *)","Bash(curl *)","Bash(wget *)","Bash(ssh *)"]}}

工具拦代码漏洞,权限拦破坏性操作。两层独立防守,任何一个失效都有另一个兜底。


下一篇

最后一篇——中文生态专题。ECC 中文版、superpowers-zh、happy-claude-skills,以及国内社区在做什么。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询