skills/practices/security-checklist/SKILL.md
Security review checklist for code review and implementation. Covers OWASP top 10, authentication, data protection, and common vulnerabilities.
npx skillsauth add devjarus/coding-agent security-checklistInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this checklist during code review and before marking any feature complete. Work through each section systematically.
<, >, &, ", ')../ traversal)/api/orders/123 only if order 123 belongs to thembcrypt or argon2 — never md5, sha1, or unsalted hashes*max_tokens) are set on every LLM call — no unbounded generation| Vulnerability | Defense |
|---|---|
| SQL Injection | Use parameterized queries or an ORM. Never concatenate user input into SQL strings. |
| XSS (Cross-Site Scripting) | Encode output for the rendering context. Use a templating engine that auto-escapes. |
| Path Traversal | Resolve and validate paths against an allowlisted base directory. Reject inputs containing ... |
| Command Injection | Use APIs that accept argument arrays, not shell strings. Never pass user input to exec/system. |
| SSRF (Server-Side Request Forgery) | Validate and allowlist destination URLs for outbound requests. Block access to internal IP ranges. |
| Insecure Deserialization | Validate and sanitize data before deserializing. Avoid deserializing untrusted data into objects. |
| Broken Access Control | Check ownership and permissions on every data access, not just at the route level. |
| Security Misconfiguration | Disable debug modes in production. Remove default credentials. Apply least-privilege to service accounts. |
testing
Multi-source research method — decompose a question, fan out parallel investigators, interleaved-think each result, verify claims adversarially, synthesize a cited answer. Use for breadth-heavy research, stack comparisons, "which approach wins" questions.
testing
Decide when to use unit vs integration vs e2e tests, and when to mock vs use the real thing per dependency. Dependency injection is the enabler — without it you end up monkey-patching imports. Apply when writing tests of any kind.
development
Test-driven development process — write failing test, implement to pass, refactor. Use when implementing any feature or fixing bugs.
development
Patterns for sharing types, API contracts, and validation schemas between frontend and backend. Use when multiple domains consume the same data shapes to prevent contract drift.