SuperAPI AI 工具集

codeprobe-security

安全与审计

查看项目

更新于 10-15 14:00

技能介绍

用途

codeprobe-security 是 codeprobe 技能集中的一个子技能,用于扫描代码中的安全漏洞。它分析源代码本身,而不是依赖清单,因此与 npm audit、composer audit 等依赖扫描工具形成互补。

主要能力

该技能检测以下类别的安全问题:

  • 注入:SQL 注入、命令注入、LDAP/NoSQL 注入。检测原始 SQL 中的字符串拼接或插值、DB::raw() 等原始查询方法中混入用户输入、使用未净化输入构造 shell 命令,以及 LDAP 过滤器或 MongoDB 查询中的注入向量。
  • 认证与授权:数据修改路由缺少认证中间件、仅在前端做角色检查而后端未强制、源码中硬编码密钥/API 密钥、弱密码策略、JWT 缺少过期时间。
  • 跨站脚本(XSS):Laravel Blade 中 {!! !!} 未转义输出、React 中 dangerouslySetInnerHTML 使用不可信数据、Vue 中 v-html 绑定不可信数据、缺少内容安全策略(CSP)。
  • 批量赋值:Laravel 模型未定义 $fillable 或 $guarded、将 $request->all() 直接传入 create/update。
  • 跨站请求伪造(CSRF):表单缺少 CSRF 令牌、修改状态的 API 路由缺少认证且无 CSRF 保护。
  • 不安全反序列化:对用户输入调用 unserialize()、pickle.loads()、ObjectInputStream、Marshal.load;JSON.parse() 结果被用于 eval 类上下文。
  • 敏感数据泄露:日志中记录密码/令牌、.env 被提交到 git、配置文件中硬编码凭据、生产配置中错误信息泄露堆栈跟踪。
  • 访问控制失效:IDOR(使用用户提供的 ID 而未校验归属)、资源访问缺少策略/门禁检查。
  • 安全配置错误:生产配置中 APP_DEBUG=true、宽松的 CORS、配置中的默认凭据。

每个发现使用 SEC- 前缀顺序编号(SEC-001、SEC-002 等),并附带修复提示示例。

使用方式

该技能可独立运行,也可通过编排器调用。独立运行时,需先读取 ../codeprobe/shared-preamble.md(相对于本 SKILL.md 所在位置解析,即同级 codeprobe 技能目录,而非用户项目)以获取输出契约、执行模式和约束;然后根据项目技术栈从 ../codeprobe/references/ 加载适用的参考文件。除非用户另有指定,默认使用完整模式。

适用场景

适用于对源代码进行安全审查,尤其是 Web 应用中的常见漏洞模式。它覆盖多种语言和框架的检测规则,包括 PHP/Laravel、Python、JavaScript/Node.js、Ruby、Java 等。

限制

该技能明确不标记以下内容:

  • 受 IP 限制访问的内部管理工具——这类工具有不同的威胁模型,限制可能是刻意为之。
  • 使用硬编码值的测试文件——测试夹具中的假凭据、令牌和 API 密钥是预期且合理的。
  • 明确标注的开发专用配置文件(如 .env.example、docker-compose.dev.yml、tests/fixtures/ 中的文件)。
  • 依赖项的已知 CVE——该子技能分析源代码,不分析依赖清单,应使用专用工具进行依赖扫描。

关于收费、价格、平台支持等具体信息,资料中暂未提供。