mcpField
S
security-review-process

security-review-process

github.com/igmarin安全335 次安装4 周前更新
代码仓库

关于 security-review-process

security-review-process 是用于在代码变更期间审查安全风险并验证缓解措施的技能,涵盖输入处理、注入风险、密钥与日志,以及依赖漏洞。

主要功能

  1. 01审查并允许列表化不可信输入
  2. 02检查 SQL 和 Shell 注入风险
  3. 03避免密钥进入代码和日志
  4. 04使用 bundle-audit 扫描依赖
  5. 05报告问题并验证缓解措施

适用场景

  1. 01审查 API 或 Webhook 的输入处理
  2. 02检查数据库和命令执行路径
  3. 03排查日志及配置中的密钥泄露
  4. 04在完成变更前评估依赖漏洞

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/igmarin/ruby-core-skills --skill security-review-process

安装后在 Claude Code 中输入/security-review-process确认已加载。

详细介绍

安全审查流程

执行此流程前,请遵循执行约定。

安全关卡与速查

区域关卡
输入验证不可信载荷必须先通过允许列表筛选,再进行处理
密钥严禁提交或记录任何密钥
注入禁止直接插入 SQL(#{id})
依赖项完成更改前运行 bundle-audit

流程步骤

步骤 1:输入验证审计
  • 找出所有入口点(控制器、API 端点、Webhook、控制台运行器)。
  • 确认每个参数都经过明确的允许列表筛选,并在必要时进行类型转换。
  • 确保丢弃或中和 JSON 载荷中类似指令的键(例如 prompt、instructions)。
步骤 2:注入检查
  • 审计所有数据库交互:
    • 确认没有通过字符串插值(#{})构建原始 SQL 字符串。
    • 确认使用数据库客户端的查询参数化功能。
  • 审计文件和命令执行:
    • 避免通过反引号、system() 或 exec() 执行动态 Shell 命令。如有必要,请将参数作为独立数组项传入。
步骤 3:密钥和日志检查
  • 从环境变量(ENV['SECRET'])或安全配置保管库读取配置,切勿使用原始字面值。
  • 确认敏感数据(密码、令牌、个人标识符)已从日志输出中过滤或脱敏。
步骤 4:依赖项和 CVE 检查
  • 扫描项目依赖项:
    bundle exec bundle-audit check --update
    
  • 如果发现漏洞,请规划安全的版本升级。

检查点模式

与用户协同:

  1. 安全漏洞评估: 按威胁向量(例如 SQL 注入、密钥泄漏)分类并说明问题。
  2. 缓解措施验证: 修复完成后,演示参数化查询或筛选器如何阻止攻击向量。

代码防护示例

1. 防止 SQL 注入

存在漏洞:

db.execute("SELECT * FROM users WHERE name = '#{params[:name]}'")

安全:

db.execute("SELECT * FROM users WHERE name = ?", params[:name])
2. 防止 Shell 注入

存在漏洞:

system("rm -rf #{params[:path]}")

安全:

system("rm", "-rf", params[:path])

集成

上下文下一项技能
标准代码审查review-process
常规 TDD 循环tdd-process

评论

支持 Markdown