Secure code review
Skill ShieldNet-360/secure-vibe/dist/copilot-skills/.github/skills/secure-code-review
Apply OWASP Top 10 and CWE Top 25 patterns during code generation and review — Applies to: when generating new code; when reviewing pull requests; when refactoring security-sensitive paths (auth, input handling, file I/O); when adding new HTTP handlers or endpointsFrom its SKILL.md
npx -y skills add ShieldNet-360/secure-vibe --skill secure-code-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 15 stars15 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.9 KB, 608 tokens by cl100k_base, as published. Nobody here has run it
Secure Code Review
Apply OWASP Top 10 and CWE Top 25 patterns during code generation and review
ALWAYS
- Use parameterized queries / prepared statements for all database access. Never build SQL by string concatenation, even for "trusted" inputs.
- Validate input at the trust boundary — type, length, allowed characters, allowed range — and reject before processing.
- Encode output for the rendering context (HTML escape for HTML, URL encode for query params, JSON encode for JSON output).
- Use the language's built-in cryptography library, never custom-rolled crypto. Prefer AES-GCM for symmetric encryption, Ed25519 / RSA-PSS for signatures, Argon2id / bcrypt for password hashing.
- Use
crypto/rand(Go),secretsmodule (Python),crypto.randomBytes(Node.js), or the platform CSPRNG for any random value involved in security (tokens, IDs, session keys). - Set explicit security headers on HTTP responses:
Content-Security-Policy,Strict-Transport-Security,X-Content-Type-Options: nosniff,Referrer-Policy. - Use the principle of least privilege for file paths, database users, IAM policies, and process privileges.
NEVER
- Build SQL/NoSQL queries by string concatenation with user input.
- Pass user input directly to
exec,system,eval,Function(),child_process,subprocess.run(shell=True), or any other command-execution path. - Trust client-side validation. Always re-validate server-side.
- Use
MD5orSHA1for any new security-sensitive purpose (passwords, signatures, HMAC). Use SHA-256 / SHA-3 / BLAKE2 / Argon2id instead. - Use ECB mode for any encryption, ever. Prefer GCM, CCM, or ChaCha20-Poly1305.
- Use
==for password comparison — use a constant-time comparison (hmac.compare_digest,crypto.timingSafeEqual,subtle.ConstantTimeCompare). - Allow user input to determine file paths without canonicalization and allowlist checks (defends against
../../../etc/passwdstyle path traversal). - Disable TLS certificate verification in production code —
verify=False,InsecureSkipVerify: true,rejectUnauthorized: false.
KNOWN FALSE POSITIVES
- Internal admin tools intentionally executing shell commands against trusted, fixed arguments are acceptable when documented and code-reviewed.
- Cryptographic test vectors using
MD5/SHA1for compatibility with documented protocols (e.g. legacy interop tests) are acceptable. - Constant-time comparison is overkill for non-secret comparisons (string equality in logs, tag matching).
What ships with it: 1 file
828 B alongside SKILL.md
- metadata.json828 B