一键导入
security-audit
Security vulnerability analysis to detect hardcoded secrets, dangerous patterns, and unsafe code practices.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Security vulnerability analysis to detect hardcoded secrets, dangerous patterns, and unsafe code practices.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Comprehensive static code analysis to enforce architectural patterns, conventions, and code quality standards.
Architecture dependency analysis to ensure proper feature isolation and composition root pattern.
Comprehensive documentation generation through automated codebase analysis, pattern detection, and diagram creation.
Dependency health analysis to detect outdated packages and unused dependencies.
Safe minor dependency updates with validation (lint/test/build) and automatic rollback on failure.
Test coverage analysis to ensure adequate testing, Storybook coverage, and test quality.
基于 SOC 职业分类
| name | security-audit |
| description | Security vulnerability analysis to detect hardcoded secrets, dangerous patterns, and unsafe code practices. |
Analyze security vulnerabilities in your codebase to ensure:
Rule: Never hardcode secrets in source code. Use environment variables.
Detects:
Violations:
// ❌ WRONG - Hardcoded API key
const API_KEY = "sk_live_1234567890abcdef";
const password = "mypassword123";
// ✅ CORRECT - Use environment variables
const API_KEY = import.meta.env.VITE_API_KEY;
const password = process.env.PASSWORD; // Server-side only
Fix:
Check: check_hardcoded_secrets.mjs
Rule: Never use eval() - it's a major security risk.
Security risks:
Violations:
// ❌ WRONG - eval() is dangerous
const result = eval(userInput);
eval("alert('XSS')");
// ✅ CORRECT - Use safe alternatives
const result = JSON.parse(jsonString);
const func = new Function('return ' + code)(); // Still risky, use carefully
Fix:
Check: check_eval_usage.mjs
Rule: Avoid dangerouslySetInnerHTML and innerHTML - they can cause XSS attacks.
Security risks:
Violations:
// ❌ WRONG - Direct HTML injection
element.innerHTML = userContent;
<div dangerouslySetInnerHTML={{ __html: userInput }} />
// ✅ CORRECT - Use React rendering
<div>{content}</div>
// ✅ ACCEPTABLE - Sanitized HTML
import DOMPurify from 'dompurify';
const clean = DOMPurify.sanitize(dirtyHTML);
<div dangerouslySetInnerHTML={{ __html: clean }} />
Fix:
Check: check_dangerous_html.mjs
Rule: Only expose environment variables prefixed with VITE_ to client code.
Safe variables:
import.meta.env.VITE_* - Explicitly safe for clientimport.meta.env.MODE - Vite built-inimport.meta.env.DEV - Vite built-inimport.meta.env.PROD - Vite built-inViolations:
// ❌ WRONG - Exposing non-VITE_ variable to client
const secret = import.meta.env.API_SECRET;
const key = import.meta.env.DATABASE_URL;
// ✅ CORRECT - Use VITE_ prefix for client-safe values
const apiUrl = import.meta.env.VITE_API_URL;
const appName = import.meta.env.VITE_APP_NAME;
Fix:
Check: check_env_exposure.mjs
node ./.claude/skills/security-audit/scripts/run_all_checks.mjs
# Hardcoded secrets check
node ./.claude/skills/security-audit/scripts/check_hardcoded_secrets.mjs
# eval() usage check
node ./.claude/skills/security-audit/scripts/check_eval_usage.mjs
# Dangerous HTML patterns check
node ./.claude/skills/security-audit/scripts/check_dangerous_html.mjs
# Environment variable exposure check
node ./.claude/skills/security-audit/scripts/check_env_exposure.mjs
To save a comprehensive markdown report of all checks:
node ./.claude/skills/security-audit/scripts/generate_report.mjs
Output: reports/{YYYY-MM-DD_HH-MM}/security-audit-report.md
Report includes:
Environment variable:
# Custom report directory
export REPORT_DIR="reports/my-custom-timestamp"
node ./.claude/skills/security-audit/scripts/generate_report.mjs
Usage patterns:
# Option 1: Console output only (default)
node ./.claude/skills/security-audit/scripts/run_all_checks.mjs
# Option 2: Console output + Save report
node ./.claude/skills/security-audit/scripts/generate_report.mjs
# Option 3: Specific check only
node ./.claude/skills/security-audit/scripts/check_hardcoded_secrets.mjs
Report structure:
reports/
└── 2025-11-01_14-30/ # Includes hours and minutes for multiple runs per day
├── security-audit-report.md # This skill's report
├── code-audit-report.md # Code quality audit (separate)
├── arch-audit-report.md # Architecture audit (separate)
└── ... # Other reports
Each check produces:
Example output:
Hardcoded Secrets Check
================================================================================
Rule: Never hardcode secrets (API keys, passwords, tokens) in source code
Violations
--------------------------------------------------------------------------------
❌ Found 2 hardcoded secret(s)
API_KEY (1 occurrence(s)):
File: src/services/api.ts:15
Snippet: const API_KEY = "sk_live_1234567890abcdef";
PASSWORD (1 occurrence(s)):
File: src/config/database.ts:8
Snippet: password: "mypassword123"
Fix:
1. Move secrets to environment variables
2. Use .env file for local development (never commit .env!)
3. Use process.env.API_KEY or import.meta.env.VITE_API_KEY
================================================================================
Summary: 2 violation(s)
reports/{timestamp}/security-audit-report.md (only when generating reports)reports/ directory