ECC 安全指南实战:提交前强制检查、密钥管理与安全响应协议的工程化落地

发布时间:2026/9/10 16:23:42

ECC 安全指南实战:提交前强制检查、密钥管理与安全响应协议的工程化落地 ECC 安全指南实战提交前强制检查、密钥管理与安全响应协议的工程化落地【免费下载链接】ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.项目地址: https://gitcode.com/GitHub_Trending/ev/ECC本文基于 ECCThe agent harness performance optimization system仓库中的通用安全规则系统讲解任何提交之前必须完成的八项强制安全检查、密钥管理的四条铁律以及发现安全问题时应当遵循的五步响应协议。作为补充文章深入剖析仓库中与之配套的 security-reviewer 专业 Agent、security-review 技能与 /security-scan 自动化扫描命令帮助你在 Claude Code、Codex、Opencode、Cursor 等 Agent 驱动的开发工作流中把安全从事后补救变成提交前强制门禁。一、提交前的八项强制安全检查ECC 在 rules/common/security.md日文版见 docs/ja-JP/rules/common/security.md中文版见 docs/zh-CN/rules/common/security.md中规定在任何提交commit之前都必须逐项核对以下安全检查清单。这并非可选的最佳实践建议而是规则层面要求所有开发工作流强制执行的门禁。1. 无硬编码密钥API 密钥、密码、令牌源代码中不允许出现任何形式的硬编码密钥。在 skills/security-review/SKILL.md 中这一点以 FAIL/PASS 对照的方式给出了明确示范// FAIL: 绝不这样做 const apiKey sk-proj-xxxxx // 硬编码密钥 const dbPassword password123 // 明文密码在源码中 // PASS: 始终这样做 const apiKey process.env.OPENAI_API_KEY const dbUrl process.env.DATABASE_URL同时要求提交前核实.env.local已被加入.gitignore、git 历史中不残留密钥、生产环境密钥交由托管平台管理。2. 所有用户输入经过验证一切外部输入都必须经过白名单式校验而非黑名单。skill 中给出了基于 zod 的 Schema 校验模式先定义CreateUserSchema在进入业务逻辑之前用parse强制校验类型、长度与取值范围非法输入直接返回 400 错误。文件上传场景则必须三重限制——大小默认上限 5MB、MIME 类型、扩展名白名单任一不满足即拒绝。3. SQL 注入防护参数化查询禁止用字符串拼接构造 SQL。skill 明确指出如下写法是危险的// DANGEROUS - SQL 注入漏洞 const query SELECT * FROM users WHERE email ${userEmail} await db.query(query)正确做法是使用参数化查询或查询构造器await db.query( SELECT * FROM users WHERE email $1, [userEmail] )同时在 OWASP 检查中确认 ORM/查询构造器使用正确、所有数据库查询均参数化。4. XSS 防护净化 HTML渲染任何用户提供的 HTML 之前必须净化。skill 推荐使用 DOMPurify 并采用白名单模式仅放行b、i、em、strong、p等安全标签不放行任何属性同时配置严格的内容安全策略CSP作为纵深防御default-src self、object-src none、frame-ancestors none。需要特别注意的是CSP 应从严格策略起步unsafe-inline与unsafe-eval会大幅削弱 CSP 的保护效果只能作为有明确移除计划的临时兼容手段。5. CSRF 保护已启用所有改变状态的请求都必须携带并校验 CSRF Token如通过X-CSRF-Token请求头验证Cookie 一律使用SameSiteStrict属性。推荐采用双重提交 CookieDouble-submit cookie模式参考 skills/security-review/SKILL.md。6. 认证/授权已验证令牌不得存放于 localStorage易受 XSS 窃取应使用HttpOnly; Secure; SameSiteStrict的 Cookie。授权方面任何敏感操作如删除用户必须先校验调用者角色再放行否则返回 403。数据库层建议启用行级安全Row Level Security确保用户只能访问属于自己的数据行。7. 所有端点实施速率限制所有 API 端点都必须有速率限制昂贵操作如搜索使用更严格的阈值。skill 给出的典型配置为常规接口 15 分钟窗口内 100 次请求搜索接口 1 分钟窗口内 10 次请求同时支持基于 IP 与基于已认证用户的限流。8. 错误信息不泄露敏感数据对外错误信息必须泛化内部细节只进服务端日志// FAIL: 暴露内部细节 catch (error) { return NextResponse.json( { error: error.message, stack: error.stack }, { status: 500 } ) } // PASS: 泛化错误信息 catch (error) { console.error(Internal error:, error) return NextResponse.json( { error: An error occurred. Please try again. }, { status: 500 } ) }日志同样禁止输出密码、令牌、完整卡号等敏感字段只保留email、userId、卡号后四位等最小必要信息。二、密钥管理四条铁律原文档将密钥管理抽象为四条不可妥协的规则绝不在源代码中硬编码密钥——API 密钥、数据库口令、令牌一律不得出现在源码中始终使用环境变量或密钥管理器——通过process.env读取或交由专门的密钥管理系统托管在启动时验证所需密钥是否存在——应用启动阶段即检查关键环境变量缺失则立即报错终止避免运行到一半才因密钥缺失而崩溃轮换任何可能已暴露的密钥——一旦怀疑泄露立即重新生成而不是抱有侥幸心理。skill 中对应的启动校验模式为// 验证密钥存在 if (!apiKey) { throw new Error(OPENAI_API_KEY not configured) }此外验证清单还要求确认.env.local已被.gitignore排除、git 提交历史中不包含任何密钥痕迹。这一点对使用 git 协作的团队尤其关键——密钥一旦进入历史单纯删除文件并不能清除泄露风险必须配合历史清理与密钥轮换。三、安全响应协议发现漏洞后的五步处置原文档定义了发现安全问题时的标准处置流程共五步立即停止——暂停当前一切开发与发布动作防止问题扩大使用 security-reviewer 代理——调用仓库内置的安全审查 Agent 进行专业分析在继续之前修复关键CRITICAL问题——只有高危漏洞清零后才能恢复工作流轮换任何已暴露的密钥——覆盖可能已泄露这一假设下的所有凭据审查整个代码库是否存在类似问题——修复单点之后做全库排查杜绝同类模式复现。这五步与 agents/security-reviewer.md 中定义的应急响应流程相互印证发现 CRITICAL 漏洞后该 Agent 会输出详细报告、立即告警项目负责人、给出安全代码示例、验证修复有效性并在凭据暴露时执行密钥轮换。同时该 Agent 内部还有Prompt Defense Baseline防线防止提示注入、数据泄露与越权指令——这恰好呼应了错误信息不泄露敏感数据与认证/授权已验证两条提交前检查项在 Agent 侧的对偶实现。四、security-reviewer 代理把安全检查交给专业 Agent原文档将 security-reviewer 列为安全响应的核心工具。仓库在 agents/security-reviewer.md 中给出了该 Agent 的完整定义它是安全漏洞检测与修复专家建议在编写处理用户输入、认证、API 端点或敏感数据的代码之后主动调用。其核心职责包括六项漏洞检测——识别 OWASP Top 10 及常见安全问题密钥检测——查找硬编码的 API 密钥、密码、令牌输入验证——确保所有用户输入被正确净化认证/授权——核验访问控制是否到位依赖安全——检查存在漏洞的 npm 包npm audit --audit-levelhigh安全编码规范——强制执行安全编码模式。在代码模式审查环节该 Agent 维护了一张发现即标记的风险模式表其中包含了与八项强制检查一一对应的严重级别与修复建议风险模式严重级别修复方式硬编码密钥CRITICAL改用process.env含用户输入的 Shell 命令CRITICAL使用安全 API 或execFile字符串拼接 SQLCRITICAL参数化查询innerHTML 用户输入HIGH用textContent或 DOMPurifyfetch(用户提供的 URL)HIGH域名白名单明文密码比较CRITICAL使用bcrypt.compare()路由缺少认证检查CRITICAL增加认证中间件无速率限制HIGH引入限流中间件记录密码/密钥的日志MEDIUM净化日志输出该 Agent 还强调五大安全原则——纵深防御Defense in Depth、最小权限Least Privilege、安全失败Fail Securely、不信任输入Dont Trust Input、定期更新Update Regularly并专门列出了常见误报场景如.env.example中的占位变量、测试文件中明确标注的测试凭据、本就公开的 API 密钥、用作校验和的哈希值要求标记之前先核实上下文。这一设计让自动化安全审查在高告警噪音环境中依然保持高信噪比。五、自动化安全扫描/security-scan 命令与 CI 门禁在规则文档之外仓库还提供了将安全检查自动化的配套命令。commands/security-scan.md 定义的/security-scan命令针对 Agent、hook、MCP、权限与密钥等面运行 AgentShield 扫描并把结果整理为带优先级的修复计划/security-scan [path] [--format text|json|markdown|html] [--min-severity low|medium|high|critical] [--fix]path可选默认扫描当前项目也可指向.claude/目录、仓库根目录或模板目录--format输出格式CI 场景用json交接场景用markdown独立审查报告用html--min-severity过滤低优先级发现项--fix仅应用 AgentShield 明确标记为安全可自动修复的修复。命令底层优先调用确定性扫描引擎npx ecc-agentshield scan --path ${TARGET_PATH:-.} --format text并强调不得虚构发现项以 AgentShield 输出为事实来源将扫描事实与后续人工判断相分离。其输出契约包括安全等级与评分、按严重级别与运行时置信度分组的计数、带精确路径的 CRITICAL/HIGH 发现项、独立的低置信度发现分组、修复顺序以及本次扫描的运行方式。该命令同样适用于 GitHub Actions可将其作为强制质量门禁接入 CI- uses: affaan-m/agentshieldv1 with: path: . min-severity: medium fail-on-findings: true如此配置后任何包含中等级别以上安全发现的提交都会在 CI 阶段直接失败把提交前强制检查从开发者自觉升级为流水线强制与规则文档中的八项检查形成规则 Agent 自动化三层落地体系。六、部署前的完整检查清单与落地建议将规则文档与 skills/security-review/SKILL.md 中的部署前清单合并即可得到一份可直接对照执行的完整门禁密钥全部置于环境变量、所有输入已验证、查询全部参数化、用户内容已净化、CSRF 保护启用、令牌处理正确、角色检查到位、所有端点限流、生产环境强制 HTTPS、安全响应头CSP、X-Frame-Options已配置、错误与日志均不含敏感数据、依赖无已知漏洞且 lock 文件已提交、RLS 已启用、CORS 配置正确、文件上传受限于大小与类型。在 Agent 驱动的开发实践中推荐的工作流是编写涉及认证、用户输入、API 端点或敏感数据的代码之后主动调用 security-reviewer 代理进行 OWASP Top 10 检查与代码模式审查提交前逐项核对八项强制检查清单对 Agent、hook、MCP、权限与密钥等运行时面用/security-scan做确定性扫描最终在 CI 中以fail-on-findings把安全底线固化为自动化门禁。Security is not optional——这条规则正是 ECC 将安全内建于开发流程而非附加于流程之后的核心主张。【免费下载链接】ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.项目地址: https://gitcode.com/GitHub_Trending/ev/ECC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/10 16:23:42

CANN/GE编译选项API文档

aclGetCompileoptSize 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Tens…

2026/9/10 19:09:09

Comsol超声波探测与回波信号仿真实践指南

1. Comsol超声波探测与回波信号仿真概述 超声波探测技术在工业无损检测、医学成像等领域应用广泛,而Comsol Multiphysics作为一款强大的多物理场仿真软件,能够精确模拟超声波在不同介质中的传播特性。我在过去五年中完成了二十多个超声波相关仿真项目&am…

2026/9/10 19:09:09

Agent记忆系统设计:从数据库存储到语义涟漪激活

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 19:09:09

GEO搜索优化实战:3000元提升本地转化率37%

1. GEO搜索优化实践复盘:3000元投入的价值评估去年底接手公司官网SEO优化时,我发现传统关键词策略在本地化搜索中效果越来越差。当用户搜索"东莞机械加工"这类含地域属性的词时,我们的页面总排在竞品之后。经过两周技术调研&#x…

2026/9/10 19:09:08

基于NSGA-II的氢能微电网多目标优化调度Matlab实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/10 19:04:08

实时日志管理系统架构设计与优化实践

1. 实时系统日志管理的核心价值 日志就像系统的"黑匣子",记录着每一次心跳、每一次异常和每一次关键操作。在分布式架构和微服务盛行的今天,传统的日志管理方式已经捉襟见肘。我曾经历过一次线上事故——某个核心服务突然崩溃,团队…

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 0:00:55

目录对比去重实战:用哈希算法精准清理重复文件

我电脑里现在还有一块换了三次机的“数据墓地”硬盘,里面存着2016年以前所有旧笔记本的完整备份。平时不觉得有什么,直到前阵子想把它整理归档,发现同一个安装包、同一批照片、同一份论文草稿,在几个不同的备份目录里反复出现。更…

2026/9/10 0:00:55

Leaflet离线地图完整Demo合集:内网部署与坐标纠偏实战

简介:这是一份面向Web GIS开发者的LeafLet离线地图示例合集,帮助开发者快速掌握离线地图从搭建到交互的完整流程。压缩包共723个文件,大小14.06MB,以319个js脚本、175个html页面和29个css样式文件为主体,配合png/svg图…

2026/9/10 0:00:55

MATLAB读取Rinex 3.02观测文件:多系统GNSS数据解析实战

简介:基于MATLAB开发的Rinex3.02版观测文件(o文件)读取代码包,面向卫星定位导航方向的学习者与研究人员,用于解决新版观测文件的数据解析、历元提取与时间转换问题。压缩包共4个文件,包含两个m脚本、一个19…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码