원클릭으로
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 페이지를 검토하고 설치를 진행할 수 있습니다.
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
SOC 직업 분류 기준
| 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]