security-review

Reviews code against a security checklist covering secrets, input validation, authentication, and injection prevention.

Updated Mar 22, 2026
One-click install
npx skills add https://github.com/diazMelgarejo/orama-system --skill security-review-diazmelgarejo
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: security-review
Source: https://github.com/diazMelgarejo/orama-system/tree/main/.cursor/.agents/skills/security-review
Command: npx skills add https://github.com/diazMelgarejo/orama-system --skill security-review-diazmelgarejo

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? It prevents common vulnerabilities like hardcoded secrets, SQL injection, XSS, and missing authorization checks from reaching production by giving you a structured security review process for sensitive code. ## Core Features & Use Cases - Ten-Area Security Checklist: Covers secrets management, input validation, SQL injection, authentication/authorization, XSS, CSRF, rate limiting, sensitive data exposure, blockchain security, and dependency security. - FAIL/PASS Code Patterns: Shows concrete wrong and right implementations in TypeScript, Next.js, Supabase, and Solana contexts so fixes are immediately actionable. - Pre-Deployment Checklist: A final verification list covering HTTPS, security headers, CORS, RLS, and file uploads before any production release. - Use Case: When adding a new API endpoint that accepts user input and processes payments, activate this skill to validate input schemas, verify authorization checks, confirm rate limiting, and ensure no secrets leak into logs. ## Quick Start Ask the AI to review your new authentication or payment endpoint using the security-review checklist before deploying it.

Frequently Asked Questions about security-review

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prevent SQL injection in Node.js and Supabase?

Always use parameterized queries or an ORM instead of string concatenation. With Supabase, use query builder methods like .eq('email', userEmail); with raw SQL, pass values as bound parameters like db.query('SELECT * FROM users WHERE email = $1', [userEmail]).

How should I store JWT tokens securely in a web app?

Store tokens in httpOnly cookies with Secure and SameSite=Strict flags, never in localStorage, which is vulnerable to XSS attacks. Set the cookie via the Set-Cookie response header with an appropriate Max-Age.

What is the best way to validate user input in TypeScript?

Use Zod schemas to define expected shapes and parse all incoming data before processing. Prefer whitelist validation over blacklists, restrict file uploads by size, MIME type, and extension, and avoid leaking sensitive details in validation error messages.

Does Supabase Row Level Security replace authorization checks?

No, RLS and application-level authorization work together. Enable RLS policies on every table so users can only access their own rows, and still verify roles in server code before sensitive operations like deletions.

Why should error messages be generic in production APIs?

Detailed errors and stack traces expose internal implementation details that attackers can exploit. Return a generic message like 'An error occurred' to users while logging full details only on the server.

How do I verify Solana wallet ownership in an app?

Verify wallet ownership by checking a signed message against the user's public key using signature verification from @solana/web3.js. Also validate transaction recipients, amounts, and balances before signing to prevent blind transaction approval.