Genie
Developers/demo proof
Verified

Fix SQL injection + add rate limiting to login

Live preview
abc1234View PR #253

Parameterized the raw SQL query in src/api/users.ts, added express-rate-limit to POST /auth/login (10 req/min), and removed the unused prevStep state variable from onboarding/flow.tsx.

Recording

4s
session-recording.mp420.1 KB

Evidence

5 items · click to maximize

Steps

7/7
7 passed — click any step for expected/actual detail
Setup3 steps· all passed
  1. #01navigateOpen login page11
    Login form renders
    ExpectedLogin form renders
    ActualLogin form rendered with email + password fields
  2. #02typeEnter email: dev@acme.co
    Email field populated
    ExpectedEmail field populated
    ActualEmail field shows dev@acme.co
  3. #03typeEnter password
    Password field populated
    ExpectedPassword field populated
    ActualPassword field masked
Action2 steps· all passed
  1. #04clickClick "Sign in" button11
    Login succeeds or rate limit triggers
    ExpectedLogin succeeds or rate limit triggers
    ActualLogin succeeded, redirected to /dashboard
  2. #05repeatRapid-fire 11 login attempts in 60s1
    Rate limiter returns 429 after 10th request
    ExpectedRate limiter returns 429 after 10th request
    Actual429 Too Many Requests returned on 11th attempt
Verify2 steps· all passed
  1. #06verifyCheck SQL query parameterization in /api/users1
    No string interpolation in SQL queries
    ExpectedNo string interpolation in SQL queries
    ActualAll queries use $1, $2 parameterized placeholders
  2. #07verifyCheck unused variable removal
    prevStep variable removed from onboarding/flow.tsx
    ExpectedprevStep variable removed from onboarding/flow.tsx
    ActualVariable removed, no references remain
Get your first proof packet

Free. No credit card required.