当前位置: 首页 > news >正文

AI 写代码的安全性漏洞与 Token 浪费,两个工具搞定

系列: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,以及国内社区在做什么。

http://www.jsqmd.com/news/926342/

相关文章:

  • Matlab版柔性车间调度工具包:用NSGA-II同时压缩短工期和降能耗
  • 运维效率翻倍:用Xmanager + SSH隧道安全访问内网Linux图形界面(保姆级配置)
  • Browser Use — AI驱动浏览器自动化的全新范式
  • Word文档样式一致性检查与批注批量导出工具(Python实现)
  • 保姆级教程:在Linux上从零配置TongLINKQ 8.1.15.2客户端,实现与服务端通信
  • 光学加密技术如何革新音频安全防护
  • 2026 青岛纹眉门店实地体验测评:多家门店综合实力盘点 - 小艾信息发布
  • JDK8 Optional详解入门:彻底告别Java空指针异常
  • Beyond Compare 5逆向工程:RSA非对称加密授权机制深度解析与密钥生成器实战
  • Cora和Citeseer数据集上可直接运行的GCN链路预测代码包(含预处理、训练与评估)
  • 2026年台州税务代理公司选对=合规高效 企赢税务智能财税推荐(含联系方式) - 本地品牌推荐
  • 2026年Trae与Claude Code优缺点对比:深度横评解析
  • MATLAB近场动力学三模型对比包:含稳定化实现、零能模式修正与能量/位移可视化
  • 运维排查手记:一次用户被锁定的故障,我是如何用faillock命令快速定位并解决的
  • Java TCP聊天室完整实现:含可运行工程、操作视频与详细课程设计文档
  • STM32F103 RGB灯PWM调光工程(KEIL环境,J-Link/ST-Link双调试器支持)
  • 2026 年郑州化妆品柜展柜厂家技术与服务分析报告
  • STM32F103扫地机器人实战工程:FreeRTOS多任务调度+IAP远程升级+电池与传感器全链路管理
  • 十年 PM 走心总结:职场管理者的底层逻辑
  • 告别Ubuntu 22.04默认Dock:这几个gsettings命令和Gnome扩展让你效率翻倍
  • 微信小程序人脸实时定位源码(含相机调用、检测框绘制与多页面示例)
  • 告别系统升级焦虑:Ubuntu 22.04 LTS 到 24.04 LTS 保姆级升级指南(含 do-release-upgrade 详解)
  • C++如何与C语言混合编程_在C++项目中调用C库函数的extern “C“方法
  • 2026年苏州地区口碑良好卫生间防水维修服务机构3家专业梳理分析 专业防水公司排名推荐(2026年6月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • Matlab版双强度GS相位恢复工具包:含仿真、迭代求解与标准流程脚本
  • PHP人脸识别与图像AI处理集成
  • 告别WinSCP和8个盘限制:用RaiDrive把阿里云盘、服务器SFTP全挂到Windows资源管理器
  • Python算法基础篇之斐波那契数列详解
  • MATLAB版LMS自适应滤波实操包:带运行录像、可调参数源码与收敛效果可视化
  • 别再踩坑了!Ubuntu 22.04 上 Zabbix 6.0 保姆级安装与配置全记录(含MySQL 8.0适配)