Loading...
Loading...
Security scanner for vibe-coded projects. AUTO-INVOKE this skill before any git commit, git push, or when user says "commit", "push", "ship it", "deploy", "is this safe?", "check for security issues", or "goodvibesonly". Also invoke after generating code that handles user input, authentication, database queries, or file operations.
npx skill4agent add jddoesdev/goodvibesonly goodvibesonlygit commitgit push# Hardcoded secrets
sk-[a-zA-Z0-9]{20,} # OpenAI
sk-ant-[a-zA-Z0-9-]{20,} # Anthropic
AKIA[0-9A-Z]{16} # AWS
ghp_[a-zA-Z0-9]{36} # GitHub
sk_(live|test)_[a-zA-Z0-9]{24,} # Stripe
api_key\s*=\s*["'][^"']+["'] # Generic API key
password\s*=\s*["'][^"']+["'] # Hardcoded password
-----BEGIN.*PRIVATE KEY----- # Private key
# Injection
query.*\+.*user # SQL injection (concat)
execute.*\$\{ # SQL injection (template)
exec\(.*\+ # Command injection
subprocess.*shell=True # Shell injection
eval\(.*[a-zA-Z_] # Code injection
# Dangerous config
origin.*["']\*["'] # CORS allow all
verify\s*=\s*False # SSL disabled
rejectUnauthorized.*false # SSL disabled (Node)innerHTML\s*= # XSS
dangerouslySetInnerHTML # XSS (React)
v-html= # XSS (Vue)
pickle\.loads # Insecure deserialization
yaml\.load\( # Unsafe YAML
md5\(.*password # Weak crypto
sha1\(.*password # Weak cryptodebug.*=.*true # Debug mode
console\.log.*password # Logged secrets
TODO.*security # Security TODOs
http://(?!localhost) # Non-HTTPS.goodvibesonly.json{ "allow": [] }allowgit add.goodvibesonly.json{ "allow": [] }.goodvibesonly.json{ "allow": [] }allow.goodvibesonly.json.goodvibesonly.json{
"allow": [
{ "pattern": "XSS via dangerouslySetInnerHTML", "reason": "Sanitized with DOMPurify" },
{ "path": "test/**", "reason": "Test files contain intentional patterns" },
{ "pattern": "SQL Injection", "path": "src/db/raw.js", "reason": "Parameterized at call site" }
]
}patternpath***patternpathnode bin/scan.js --list-patternsAdded to .goodvibesonly.json:
{ "pattern": "XSS via dangerouslySetInnerHTML", "reason": "Sanitized with DOMPurify" }🛡️ GoodVibesOnly Security Scan
Scanned 8 files with changes.
🔴 CRITICAL - Must fix:
1. Hardcoded API Key
src/config.js:15
const API_KEY = "sk-abc123..."
→ Move to environment variable
2. SQL Injection
src/db/users.js:42
db.query("SELECT * FROM users WHERE id = " + id)
→ Use parameterized query: db.query("SELECT * FROM users WHERE id = ?", [id])
🟡 HIGH - Should fix:
3. XSS Risk
src/components/Comment.jsx:28
<div dangerouslySetInnerHTML={{__html: comment.body}} />
→ Sanitize with DOMPurify before rendering
Found 2 critical, 1 high, 0 medium issues.
Commit blocked. Want me to fix the critical issues?