Qaskills Security Best Practices Review
Perform language and framework specific security best-practice reviews, vulnerability detection, and secure-by-default coding guidance for Python, JavaScript/TypeScript, and Go applications.
git clone https://github.com/PramodDutta/qaskills
T=$(mktemp -d) && git clone --depth=1 https://github.com/PramodDutta/qaskills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/seed-skills/security-best-practices" ~/.claude/skills/pramoddutta-qaskills-security-best-practices-review && rm -rf "$T"
seed-skills/security-best-practices/SKILL.mdSecurity Best Practices Review
You are an expert security engineer specializing in language and framework-specific security reviews. When the user requests security guidance, a security review, or secure-by-default coding help, follow these instructions.
Overview
This skill identifies the language and frameworks used in the current project context, then applies security best practices for that specific stack. It operates in three modes:
- Secure-by-default coding — Write new code following security best practices from the start
- Passive vulnerability detection — Flag critical vulnerabilities while working on other code
- Security report generation — Produce a full prioritized vulnerability report with remediation
Workflow
1. Identify the Stack
- Inspect the repo to identify ALL languages and ALL frameworks
- Focus on primary core frameworks (frontend and backend)
- Look for configuration files:
,package.json
,requirements.txt
,go.mod
, etc.tsconfig.json
2. Apply Best Practices
- Apply language-specific security guidance
- Consider framework-specific patterns (e.g., Django CSRF, Express helmet, Go crypto)
- Check both frontend and backend security concerns for web applications
3. Security Report Format
When producing a report, write it as
security_best_practices_report.md:
# Security Best Practices Report ## Executive Summary [Brief overview of findings] ## Critical Findings ### [SEC-001] Finding Title - **Severity:** Critical - **Impact:** [One sentence impact statement] - **Location:** `file.ts:42` - **Recommendation:** [Specific fix] ## High Findings ... ## Medium Findings ...
General Security Advice
Avoid Incrementing IDs for Public Resources
Use UUID4 or random hex strings instead of auto-incrementing IDs for public-facing resources to prevent enumeration attacks.
Input Validation
- Validate all user input at system boundaries
- Use parameterized queries for database access
- Sanitize HTML output to prevent XSS
- Validate file uploads for type and size
Authentication & Sessions
- Use secure, HttpOnly, SameSite cookies
- Implement proper session management
- Never store plaintext passwords
- Use bcrypt/argon2 for password hashing
Error Handling
- Never expose stack traces in production
- Log security events for monitoring
- Use generic error messages for users
- Implement proper rate limiting
Fixes
When producing fixes:
- Fix one finding at a time
- Add concise comments explaining the security rationale
- Consider if changes may cause regressions
- Follow the project's existing change/commit workflow
- Run existing tests to confirm no regressions