# Security Review for AI-Built Apps

> A Claude Code skill that reviews an app built quickly with AI assistants for the mistakes that actually get such apps breached or billed: live keys in the code or in the browser bundle, committed .env files, Supabase tables without row level security, open Firebase rules, SQL built from strings, unsigned Stripe webhooks, and AI endpoints anyone can call on your budget. Read-only by default, secrets always masked, fixes only when you approve them.

- Price: $29, one-time
- Version: 1.0.0, updated 2026-10-29
- Works with: Claude Code, or any agent with a shell
- Seller: Stramanu (Emanuele Strazzullo)

## What it does

1. **Static scan** with `scripts/scan.py` (standard library, no network, never runs your code): 17 rules for leaked keys (Stripe, AWS, Google, GitHub, Slack, OpenAI, Anthropic, private keys, Supabase service role), secrets behind public prefixes (`NEXT_PUBLIC_`, `VITE_`, `EXPO_PUBLIC_`...), service role in client code, committed env files, Supabase tables without RLS and `using (true)` policies, open Firebase rules, wildcard CORS with credentials, SQL from strings, dynamic code, shell with input, raw HTML, unverified Stripe webhooks, paid AI endpoints with no auth or rate limit. It skips dependencies and build caches and downgrades what it finds in tests.
2. **Verification**: every critical and high finding is opened and confirmed or dismissed with a reason; for secrets, git history is checked to see if a key ever reached a remote.
3. **Manual review** of what no scanner sees: auth and ownership checks on every route (IDOR), database rules, client bundle, payment fulfillment, AI features, uploads, admin and debug routes, headers.
4. **Report** `SECURITY-REVIEW.md`: the 3 things to do today, findings by severity with file:line and fix, what was and was not reviewed, and the actions only you can do (key rotation, dashboard settings, history rewrite).
5. **Fixes** you approve, one per commit, and a rerun of the scan with before/after counts.

## A real session

We ran it on 10 of our own repositories (Angular, Astro, Nuxt and Workers apps, Python pipelines, D1 and Postgres databases), about 100 seconds for all of them. After verification: **3 critical findings in one repo**, a tracked `.env` holding an Anthropic and an OpenAI key, pushed to a private remote, so both keys must be rotated and the file removed from git. **2 high**: SQL assembled with string interpolation in an export script and in an analytics script. **43 medium** raw-HTML renders to review, most of them of trusted static content. Seven repos had nothing above medium, two had no findings at all. Building the scanner on real code also removed the noise generic scanners produce: build caches, test fixtures, keys in untracked local env files, RLS warnings on SQLite.

## Requirements

- Claude Code (or any agent with a shell) and Python 3
- git for the history checks (optional)

## What you get

The `ai-app-security-review` skill: workflow, `scripts/scan.py` with 18 tests, and `references/checklist.md` (what each rule means and the 10-point manual review). Single-user license.

## Limits

Static analysis finds patterns, not every vulnerability; the manual review covers authorization, but it is not a penetration test or a certification. The skill never rotates keys, changes cloud settings, pushes or rewrites history for you: it tells you exactly what to do.
