Write-up: AppSec tooling
GapScan
An open-source scanner that finds leaked keys and misconfigured backends, and explains them to people who aren't security engineers.
D 48 → A+ 98My own site, before and after
Full historyEvery commit scanned for secrets
0 secretsStored. Only redacted fingerprints
The problem
Students, freelancers and small agencies ship fast on Firebase and Supabase. The same mistakes keep showing up: API keys committed to git and "deleted" later (they stay in history), Supabase tables readable by anyone, public Firebase storage, and admin keys bundled into frontend code.
Most scanners report these as a wall of jargon, or check only one surface. I wanted one tool that checks the website, the repo and the backend together, and says what's wrong in plain language.
What it checks
- Websites: security headers and configuration, graded A+ to F.
- GitHub repos: the full git history, through a GitHub App running gitleaks.
- Firebase and Supabase: read-only checks for open tables, public storage and admin keys in frontend code.
The finding I'm proudest of: GapScan links a key leaked in a repo to the live site's backend and reports both as one critical issue, because together that's a real breach path.
Making a security tool safe to run
A scanner that fetches arbitrary URLs is itself an attack surface, so I built it defensively:
- An SSRF guard on every outbound request, so nobody can point it at internal addresses.
- Domain-ownership verification before deeper scans, so it can't be used against sites you don't own.
- Rate limiting, and secrets are stored only as redacted fingerprints, never in full.
Stack
FastAPI and Celery workers with Redis, PostgreSQL for results, and a Next.js frontend. Self-hostable and licensed AGPL-3.0.
Result
I pointed it at my own site first. It went from a D (48) to an A+ (98) once I fixed what it found.