ワンクリックで
security-audit
Identify security vulnerabilities and recommend fixes based on OWASP guidelines
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Identify security vulnerabilities and recommend fixes based on OWASP guidelines
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
A skill whose only resource is a binary asset for e2e binary-handling tests
A valid test skill with all features
Design RESTful APIs following best practices for consistency, usability, and scalability
Systematic code review methodology for identifying issues, suggesting improvements, and ensuring code quality
Write secure, efficient Dockerfiles following container best practices
Write clear, conventional commit messages that communicate changes effectively
| name | security-audit |
| description | Identify security vulnerabilities and recommend fixes based on OWASP guidelines |
| license | Apache-2.0 |
| compatibility | claude-3 |
| metadata | {"author":"skills-mcp","version":"1.0","category":"security"} |
| allowed-tools | Read Grep Glob |
Systematically identify security vulnerabilities in code using OWASP Top 10 and security best practices.
Look for:
# BAD: No authorization check
@app.route('/admin/users')
def list_users():
return User.query.all()
# GOOD: Authorization enforced
@app.route('/admin/users')
@requires_role('admin')
def list_users():
return User.query.all()
Look for:
MD5, SHA1 for passwords (weak)Look for:
# BAD: SQL Injection
query = f"SELECT * FROM users WHERE id = {user_id}"
# GOOD: Parameterized
query = "SELECT * FROM users WHERE id = %s"
cursor.execute(query, (user_id,))
Check for:
# BAD
DEBUG = True
SECRET_KEY = "default-secret-key"
# GOOD
DEBUG = os.getenv("DEBUG", "false").lower() == "true"
SECRET_KEY = os.getenv("SECRET_KEY") # Required, no default
Look for:
# BAD: Logging sensitive data
logger.info(f"User login: {username}, password: {password}")
# GOOD: Log event, not sensitive data
logger.info(f"User login attempt: {username}")
# Dangerous: eval, exec, pickle.loads
eval(user_input) # Code injection
pickle.loads(data) # Arbitrary code execution
subprocess.shell=True # Command injection
# Safe alternatives
ast.literal_eval(user_input) # For literals only
json.loads(data) # For data serialization
subprocess.run([cmd, arg], shell=False)
// Dangerous
innerHTML = userInput // XSS
eval(userInput) // Code injection
new Function(userInput) // Code injection
// Safe
textContent = userInput
// Use sanitization libraries for HTML
-- Always use parameterized queries
-- Never concatenate user input
Ensure these headers are set:
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Content-Security-Policy: default-src 'self'
X-XSS-Protection: 1; mode=block
## Security Finding
**Severity**: Critical/High/Medium/Low/Info
**Category**: OWASP A0X - Name
**Location**: file.py:line
### Description
[What the vulnerability is]
### Impact
[What an attacker could do]
### Recommendation
[How to fix it]
### Code Example
[Before/After code snippets]