INJ-001critical SeverityInjection Sinks & Input Validation

Parameterized Queries on All Database Operations (No Raw SQL Concatenation)

AI writes template string queries like `SELECT * FROM users WHERE email = '${req.body.email}'` which allows trivial SQL injection.

1-Click Fix Prompt for Cursor & Claude Code
Review my codebase for "Parameterized Queries on All Database Operations (No Raw SQL Concatenation)" (INJ-001).
Issue: AI writes template string queries like `SELECT * FROM users WHERE email = '${req.body.email}'` which allows trivial SQL injection.
Remediation required: Always use parameterized query placeholders ($1, ?) or an ORM like Prisma or Drizzle with parameter binding.

Please:
1. Locate any occurrences of this issue across my repository.
2. Refactor the code to follow production standards without breaking existing functionality.
3. Provide a clear command or step to test and verify the fix.

Why AI Assistants Write This Bug

AI writes template string queries like `SELECT * FROM users WHERE email = '${req.body.email}'` which allows trivial SQL injection.

AI code generation prioritizes immediate syntax execution over production edge cases. When an assistant hits an undefined variable or strict type error, it frequently takes the path of least resistance rather than implementing standard pre-launch security patterns.

Code Comparison

Common AI Code PatternVulnerable
// Vulnerable AI-generated pattern for: Parameterized Queries on All Database Operations (No Raw SQL Concatenation)
// Problematic pattern: AI writes template string queries like `SELECT * FROM users WHERE email = '${req.body.email}'` which allows trivial SQL injection.
Launch-Ready Fix
// Production-ready fix for: Parameterized Queries on All Database Operations (No Raw SQL Concatenation)
// Recommended remediation: Always use parameterized query placeholders ($1, ?) or an ORM like Prisma or Drizzle with parameter binding.

Remediation & Verification Checklist

Remediation: Always use parameterized query placeholders ($1, ?) or an ORM like Prisma or Drizzle with parameter binding.
  1. Search your codebase for pattern matching "Parameterized Queries on All Database Operations (No Raw SQL Concatenation)".
  2. Apply the recommended remediation: Always use parameterized query placeholders ($1, ?) or an ORM like Prisma or Drizzle with parameter binding.
  3. Run local build and test commands to ensure no regressions.
  4. Verify in your browser or with curl that the issue is resolved.
Audit All 108 Checks in One Click

Checking items one by one takes hours. Let us do it in 2 minutes.

With the Founder Pass ($15 one-time), we automatically scan your repository for this issue, plus all other 107 launch checks across secrets, Stripe webhooks, Supabase RLS, and security headers.