mcpField
S
security-watch

security-watch

github.com/proffesor-for-testing安全51960 次安装今天更新
代码仓库

关于 security-watch

security-watch 是一个 Claude skill,会扫描文件写入中的常见安全反模式并阻止检测到的风险。它面向代码修改,按明文模式检查;项目说明指出它不能替代正式安全审查。

主要功能

  1. 01扫描写入内容中的机密
  2. 02标记危险函数
  3. 03检测注入模式
  4. 04检查不安全配置
  5. 05支持忽略注释

适用场景

  1. 01防止机密进入源代码
  2. 02在修改代码时检查写入
  3. 03检查潜在 SQL 或 Shell 注入
  4. 04用忽略注释保留刻意设置的测试模式

安装

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

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill security-watch

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

附带文件scripts/scan-security.sh

详细介绍

安全监控模式

激活后,会扫描每次文件写入,检测常见的安全反模式,并阻止危险代码被提交。

功能

标记或阻止包含以下内容的写入:

  • 机密信息:源代码中的 API 密钥、密码、令牌、私钥
  • 危险函数:eval()、Function()、innerHTML、dangerouslySetInnerHTML
  • 注入入口:SQL/Shell 命令中未经清理的模板字面量
  • 不安全配置:http:// URL、禁用 TLS 验证、* CORS 来源

激活

/security-watch

Hook 配置

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write|Edit",
        "hook": ".claude/skills/security-watch/scripts/scan-security.sh"
      }
    ]
  }
}

检测模式

#!/bin/bash
# scan-security.sh
CONTENT="$1"
ISSUES=0

# Secrets detection
SECRET_PATTERNS=(
  'AKIA[0-9A-Z]{16}'                    # AWS Access Key
  'sk-[a-zA-Z0-9]{48}'                  # OpenAI API Key
  'ghp_[a-zA-Z0-9]{36}'                 # GitHub Personal Token
  'password\s*[:=]\s*["\x27][^"\x27]+'  # Hardcoded passwords
  'BEGIN (RSA |EC )?PRIVATE KEY'         # Private keys
  'sk_live_[a-zA-Z0-9]+'                # Stripe secret key
)

for pattern in "${SECRET_PATTERNS[@]}"; do
  if echo "$CONTENT" | grep -qP "$pattern"; then
    echo "BLOCKED: Potential secret detected matching pattern: $pattern"
    ISSUES=$((ISSUES + 1))
  fi
done

# Dangerous functions
DANGER_PATTERNS=(
  '\beval\s*\('
  '\bFunction\s*\('
  '\.innerHTML\s*='
  'dangerouslySetInnerHTML'
  'child_process.*exec\('
  '\$\{.*\}.*(?:SELECT|INSERT|UPDATE|DELETE)'
)

for pattern in "${DANGER_PATTERNS[@]}"; do
  if echo "$CONTENT" | grep -qP "$pattern"; then
    echo "WARNING: Dangerous pattern detected: $pattern"
    ISSUES=$((ISSUES + 1))
  fi
done

if [ $ISSUES -gt 0 ]; then
  echo "Found $ISSUES security issues. Review before proceeding."
  exit 1
fi

注意事项

  • 对于有意包含 eval() 等模式的测试固件,可能会产生误报——使用 // security-watch:ignore 注释
  • 无法检测 Base64 编码的机密信息——此模式仅扫描明文
  • 模板字面量注入检测会对安全的字符串插值产生误报——请仔细查看警告
  • 这只是第一道防线,不能替代正规的安全审查

评论

支持 Markdown