en un clic
security-audit
Audit web applications for security vulnerabilities
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Audit web applications for security vulnerabilities
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Fetch transcripts from YouTube videos (urls)
Create a blog post
Web search
Interactive browser automation for testing and scraping
Check domain name availability
Optimize UI and UX design
| name | security-audit |
| description | Audit web applications for security vulnerabilities |
Systematic checklist for auditing web application security. Organized around the OWASP Top 10 with concrete checks and fix patterns. Framework-agnostic.
Work through each section. Items are ordered by typical severity.
The most exploitable class of vulnerabilities. Never interpolate user input into queries or commands.
-- BAD: string interpolation
SELECT * FROM users WHERE id = '${userId}'
-- GOOD: parameterized
SELECT * FROM users WHERE id = $1
exec, spawn, system, eval calls — never pass user input to shell commands
// BAD
exec(`convert ${userFile} output.png`)
// GOOD: use array form to avoid shell interpretation
execFile('convert', [userFile, 'output.png'])
.query() / .execute()// Minimum cost factor: 12
const hash = await bcrypt.hash(password, 12)
crypto.timingSafeEqual(Buffer.from(a), Buffer.from(b))
# Common patterns to grep for
grep -rn "password\s*=\s*['\"]" --include="*.{js,ts,py,go,java,rb}"
grep -rn "API_KEY\|SECRET\|TOKEN\|PRIVATE_KEY" --include="*.{js,ts,py,go,java,rb}"
.gitignore covers .env, *.pem, *.key, credentials files// BAD: sending full user object
res.json(user)
// GOOD: explicit allowlist
const { id, name, email } = user
res.json({ id, name, email })
dangerouslySetInnerHTML, | safe, {!! !!})// Allowlist approach — strip everything except safe tags
const clean = DOMPurify.sanitize(userHtml, {
ALLOWED_TAGS: ['b', 'i', 'em', 'strong', 'a', 'p'],
ALLOWED_ATTR: ['href']
})
javascript:, data:, vbscript: in user-provided links
function isSafeUrl(url) {
try {
const parsed = new URL(url)
return ['http:', 'https:'].includes(parsed.protocol)
} catch {
return false
}
}
Content-Type headers correctly — API endpoints returning JSON must set application/json, not text/htmlOrigin / Referer headers as defense-in-depthSameSite=Lax or Strict on session cookies (prevents cross-origin cookie sending)Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; frame-ancestors 'none'
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()
unsafe-inline and unsafe-eval where possible, use nonces or hashesX-Powered-By, Server (information leakage)GET /api/users/123/invoices → Does it verify the caller owns user 123?
# Example limits
Login: 5 requests / minute / IP
API general: 100 requests / minute / user
Signup: 3 requests / hour / IP
// BAD
cors({ origin: '*' })
// GOOD
cors({ origin: ['https://app.example.com'] })
npm audit, pip audit, cargo audit, go vuln check| Action | Blocks |
|---|---|
| Add security headers | XSS, clickjacking, MIME sniffing |
Set SameSite on cookies | CSRF |
Run npm audit / pip audit | Known CVEs in dependencies |
| Switch to parameterized queries | SQL injection |
| Remove hardcoded secrets | Credential exposure |
| Add rate limiting to auth routes | Brute-force, credential stuffing |
Set HttpOnly + Secure on cookies | Session hijacking via XSS |
| Add CORS allowlist | Unauthorized cross-origin access |
# Find hardcoded secrets
grep -rn "password\|secret\|api_key\|token" --include="*.{js,ts,py,go}" -i
# Find raw SQL queries
grep -rn "query\|execute\|raw(" --include="*.{js,ts,py,go}"
# Find dangerous HTML rendering
grep -rn "innerHTML\|dangerouslySetInnerHTML\|v-html\|markSafe\|\| safe" --include="*.{js,ts,jsx,tsx,vue,py,html}"
# Find eval / exec usage
grep -rn "\beval\b\|\bexec\b\|\bspawn\b\|\bsystem\b" --include="*.{js,ts,py,rb,go}"
# Find open CORS
grep -rn "origin.*\*\|Access-Control-Allow-Origin" --include="*.{js,ts,py,go}"