My job at Google is thinking like an attacker. If I were attacking your vibe-coded app, these are th
Saedf · LinkedIn · source
My job at Google is thinking like an attacker. If I were attacking your vibe-coded app, these are the 30 doors I’d try first.
Go through this before any user signs up:
BEFORE YOU PUSH
- Add .env to .gitignore before your first commit
- Run secret scanning (Gitleaks) as a pre-commit hook
- Rotate any key that has ever touched GitHub, even for 5 minutes
- Move every API key out of your frontend bundle
- Pin your versions and commit your lockfile
AUTH & ACCESS
- Check auth on every API route, not just in the UI
- Change the ID in the URL. Can user A read user B’s data?
- Turn on Row Level Security for every table
- Use a real auth provider. Don’t roll your own
- Keep access tokens short-lived, and revoke refresh tokens on logout
- Do admin checks on the server, never in the frontend
- Rate limit login, signup and password reset
INPUT & DATA
- Validate everything on the server. The client lies
- Use parameterised queries. No string-built SQL
- Escape user content before you render it
- Lock CORS to your own domains, never ”*”
- Make storage buckets private by default
- Process file uploads in a sandbox, away from your app server
- Verify webhook signatures (Stripe, GitHub, etc.)
AI & AGENTS
- Set hard spending caps on OpenAI, Anthropic and your cloud
- Rate limit your AI endpoints before someone drains your credits
- Treat anything the model reads as untrusted input
- Never let the model run tools, SQL or shell commands without limits
- Check that the packages your AI suggested actually exist
- Read every CLAUDE.md, SKILL.md and MCP config like it’s code
- Keep production credentials out of your agent’s reach
WHEN IT BREAKS
- Return generic errors. Never show stack traces
- Strip secrets and PII from your logs
- Log who did what, so you can reconstruct an incident
- Back up your database and actually test a restore
AI made shipping cheap. It made attacking cheap too.
Save this for your next deploy, and send it to the mate who ships on Fridays :D