| name | slopsec |
| description | Security audit and hardening for vibe-coded SaaS apps. Use when reviewing, securing, hardening, or pen-testing an app โ especially AI-generated / vibe-coded / "shipped fast" projects (Next.js, Supabase, Firebase, Express, serverless). Triggers: "is my app secure", "security review", "harden this", "check for vulnerabilities", "I'm about to launch", "audit before deploy", "exposed secrets", "leaked API keys", "before I ship". Walks the 50 most common ways vibe-coded apps get owned and produces a prioritized fix list. |
slopsec
Security review built for vibe-coded SaaS slop: apps shipped fast with AI
assistance, where the gap between "it works" and "it's safe to expose to the
internet" is where attackers live. The premise of the source material is simple
โ a freshly launched app got probed by an attacker within 3 hours. Bots scan
the whole IPv4 space constantly; "nobody knows my URL yet" is not a defense.
This skill turns 50 recurring failure modes into a repeatable audit. Use it to
review existing code or harden before a launch.
How to use this skill
- Scope it. Identify the stack (frontend framework, backend, database,
auth provider, hosting) and where secrets live. Most slop vulns cluster
around Supabase/Firebase rules, missing server-side authz, and leaked env.
- Run the audit. Walk every item in
references/checklist.md. For each,
either confirm it's handled or flag it. Don't skip categories because the
app "looks fine" โ the dangerous bugs are invisible from the UI.
- Prove the findings. Where safe and authorized, demonstrate the issue
(e.g. fetch another user's row via the API, hit an admin route unauthed,
grep the built JS bundle for secrets). A demonstrated bug gets fixed; a
theoretical one gets argued about.
- Prioritize. Score each finding by
references/severity.md. Lead with
the catastrophic, instantly-exploitable ones (exposed creds, missing authz,
open DB rules). Don't bury a P0 IDOR under a missing security header.
- Fix and re-verify. Apply fixes, then re-test the specific issue.
references/principles.md has all 50 items grouped into 9 categories with the
concrete "what to look for" and "how to fix" for each. Read it before auditing.
The non-negotiables (read first)
These cause the majority of real-world breaches in vibe-coded apps. If you do
nothing else, verify these:
- No secrets reachable by the client or the public. No
.env served, no
keys in the frontend bundle, no source maps in prod, no secrets in git
history, build logs, or error messages. The browser is hostile territory.
- Every sensitive action is authorized server-side. Authentication ("who
are you") is not authorization ("are you allowed"). Frontend checks are UX,
not security โ the server must re-verify identity, role, ownership, and
payment status on every request.
- The database enforces its own access rules. Supabase RLS / Firestore
rules / S3 bucket policies must deny by default. "Open read/write so it works
in dev" is how user data leaks. Tenant isolation must hold at the data layer.
- User-controlled input is never trusted. Validate on the server. Never
trust IDs, roles, prices, or quantities sent by the client. Parameterize
queries. Escape output. Verify webhook signatures.
Categories (full detail in references/principles.md)
- Secrets & exposure (1โ3, 10โ14, 36) โ leaked creds, env, keys, debug
pages, source maps.
- AuthN & AuthZ (4โ6, 9, 33โ34) โ missing/weak auth, no authz, IDOR,
trusting client-supplied IDs/roles.
- Database & storage (7โ8, 41, 49) โ open rules, misconfigured buckets,
excessive DB perms, broken tenant isolation.
- Injection & input (16โ23) โ SQLi, NoSQLi, XSS, CSRF, file upload, path
traversal, SSRF, missing validation.
- Sessions, tokens & cookies (24โ27, 47) โ reset flows, session mgmt, JWT
secrets, CORS, cookie flags.
- Frontend trust boundary (15, 32) โ client-side-only checks, frontend
payment gating.
- Rate limiting & exposure surface (28โ31, 45) โ missing rate limits,
public staging, default creds, unsigned webhooks, exposed dashboards.
- AI-specific (39โ40) โ prompt injection, AI tools acting without authz.
- Ops, logging & dependencies (35, 37โ38, 42โ44, 46, 48, 50) โ secret
leakage in logs, vuln/outdated deps, no audit/monitoring/backups, missing
headers, unencrypted data, over-trusting generated code.
Output
Produce a findings report: references/report-template.md. One row per finding
with severity, evidence, and the specific fix. End with a prioritized fix
order, not just a list.
Scope & ethics
Only test apps you own or are explicitly authorized to test. This skill is for
defensive hardening and authorized review. Demonstrating a vuln on your own
app is fine; probing someone else's is not.