security-review
Conduct security code reviews. Use when reviewing code for vulnerabilities, assessing security posture, or auditing applications. Covers security review checklist.
When & Why to Use This Skill
This Claude skill automates the security code review process by identifying critical vulnerabilities such as SQL injection, XSS, and hardcoded secrets. It leverages a comprehensive security checklist—covering authentication, authorization, and cryptography—to help developers assess their security posture and ensure applications meet industry-standard secure coding practices.
Use Cases
- Automated Pull Request Auditing: Perform deep security scans on new code submissions to catch vulnerabilities like SQL injection or hardcoded credentials before they reach production.
- Legacy Codebase Sanitization: Audit existing applications to identify and remediate outdated cryptographic algorithms, insecure random number generation, or weak session management.
- Compliance and Standards Verification: Systematically verify that software components adhere to internal security checklists for input validation, output encoding, and error handling.
- Security Posture Assessment: Generate detailed security review reports that categorize findings by severity (Critical to Low) to prioritize remediation efforts during development cycles.
| name | security-review |
|---|---|
| description | Conduct security code reviews. Use when reviewing code for vulnerabilities, assessing security posture, or auditing applications. Covers security review checklist. |
| allowed-tools | Read, Glob, Grep |
Security Review
Review Checklist
Authentication
- Strong password requirements enforced
- MFA implemented for sensitive operations
- Session tokens are cryptographically secure
- Session timeout is appropriate
- Logout properly invalidates session
Authorization
- Access controls checked server-side
- Least privilege principle applied
- Role-based access properly implemented
- Direct object references validated
Input Validation
- All input validated server-side
- Input type and length checked
- Special characters properly handled
- File uploads validated and restricted
Output Encoding
- HTML output properly encoded
- JSON responses use proper content type
- Error messages don't leak information
Cryptography
- Strong algorithms used (AES-256, RSA-2048+)
- No custom crypto implementations
- Keys properly managed
- TLS 1.2+ enforced
Error Handling
- Exceptions handled gracefully
- Error messages don't expose internals
- Failed operations logged
Logging
- Security events logged
- Sensitive data not logged
- Logs protected from tampering
Code Patterns to Flag
SQL Injection
// DANGER
db.query(`SELECT * FROM users WHERE id = ${id}`);
XSS
// DANGER
element.innerHTML = userInput;
Hardcoded Secrets
// DANGER
const API_KEY = "sk-abc123...";
Insecure Random
// DANGER
Math.random(); // For security purposes
Security Review Report
## Security Review: [Component]
### Summary
- Critical: [X]
- High: [X]
- Medium: [X]
- Low: [X]
### Findings
#### [CRITICAL] SQL Injection in UserService
**Location**: src/services/user.ts:47
**Description**: User input concatenated into SQL query
**Remediation**: Use parameterized queries
**Code**:
```typescript
// Current (vulnerable)
// Recommended fix