Security Guide

The Non-Technical Founder's Security Checklist for AI-Built Apps

You built your app with AI. Here are 7 things to check before you launch — no coding required.

You used Cursor, Lovable, Bolt, or v0 to build your app. It looks great. It works. Your users are signing up.

But here's the thing: AI coding tools optimize for "make it work," not "make it secure." They ship features, not firewalls. And unless you explicitly ask for security, you probably don't have it.

We know this because we've scanned hundreds of AI-built apps. The data paints a stark picture:

The good news? Most of these issues are fixable in minutes — you just need to know what to look for.

This checklist walks you through the 7 most important security checks for AI-built apps. Each one is explained in plain English, with a clear explanation of what goes wrong if you skip it.


1
Check for Exposed API Keys
Critical Risk

What it is: API keys are like passwords that let your app talk to services — your database, your AI model, your payment processor. When AI generates your code, it sometimes puts these keys directly in your frontend JavaScript, where anyone can see them.

Why it matters: If someone copies your OpenAI key, they can run up thousands of dollars in charges. If they get your Supabase service role key, they can read and delete your entire database.

How to check: Open your live site, right-click, choose "View Page Source," and search for sk-, key, or secret. If you find long strings that look like passwords, you have a problem.

SecureYourVibe automatically detects 140+ API key formats including OpenAI, Stripe, Supabase, Firebase, AWS, and more. Run a free scan to check all of them at once.

2
Verify Your Database Has Access Controls
Critical Risk

What it is: If you're using Supabase or Firebase (and most vibe-coded apps do), your database might be completely open to the public. By default, some configurations let anyone on the internet read your data — no login required.

Why it matters: User emails, passwords, private messages, payment info — all accessible to anyone who knows where to look. And finding it is trivial for anyone with basic technical skills.

How to check (Supabase): Go to your Supabase dashboard, click on a table, and look for "RLS enabled" (Row Level Security). If it says disabled, your data is public.

How to check (Firebase): In your Firebase console, go to Firestore Rules or Realtime Database Rules. If you see allow read, write: if true, your database is wide open.

The fix is usually 2-3 lines. For Supabase, enable RLS on each table and add a policy. For Firebase, update your rules to require authentication. Your AI tool can help you write these — just ask it to "add Row Level Security policies to all my Supabase tables."

3
Make Sure You Have Security Headers
High Risk

What it is: Security headers are instructions your server sends to browsers that say things like "don't let other websites embed me" and "only load scripts from my own domain." They're a critical layer of defense that AI tools almost never set up.

The headers that matter most:

Why it matters: Without these headers, attackers can inject code into your pages, steal session cookies, or trick your users into interacting with a fake version of your site.

If you're on Vercel or Netlify, this is a config file change. Add a headers section to your vercel.json or netlify.toml. Our scan results include the exact code to copy-paste for your platform.

4
Check Your CORS Configuration
High Risk

What it is: CORS (Cross-Origin Resource Sharing) controls which websites can make requests to your API. If it's set to allow any website (the wildcard *), then a malicious site can interact with your API as if it were your own frontend.

Why it matters: An attacker could build a page that looks legitimate but actually makes requests to your API using your users' credentials. If your user is logged in and visits the attacker's page, their data could be stolen.

How to check: This one is harder to verify manually, but the general rule is: your API should only accept requests from your own domain(s), not from everywhere.

SecureYourVibe tests CORS by sending requests with different origin headers and checking if your server accepts them. Run a free scan to see exactly how your CORS is configured.

5
Look for Exposed Files
High Risk

What it is: Your deployment might be serving files that should never be public: .env files (which contain your secrets), .git directories (which contain your entire source code history), source maps (which reveal your original code), and debug logs.

Why it matters: An .env file is a treasure chest for an attacker — it typically contains every secret key your app uses. Source maps let attackers study your code to find weaknesses.

How to check: Try visiting yourdomain.com/.env and yourdomain.com/.git/config in your browser. If you see content instead of a 404 error, you have a problem. Also check yourdomain.com/debug.log and look for .map files in your browser's network tab.

Most hosting platforms block these by default, but if you're running a custom server (Express, etc.), you need to configure this yourself. Add these paths to your server's deny list or make sure your deploy process doesn't include them.

6
Verify Your Cookies Are Secure
Medium Risk

What it is: If your app has user accounts, it uses cookies to keep people logged in. Those cookies need three security flags: Secure (only send over HTTPS), HttpOnly (JavaScript can't read it), and SameSite (prevent cross-site request forgery).

Why it matters: Without HttpOnly, a cross-site scripting (XSS) attack can steal your users' login sessions. Without Secure, someone on the same WiFi network could intercept the cookie. Without SameSite, a malicious site could make requests using your users' cookies.

How to check: Open DevTools in your browser (F12), go to the Application tab, then Cookies. Click your domain and check if each cookie has these three flags.

7
Check Your TLS Certificate
Medium Risk

What it is: TLS (the padlock icon in your browser) encrypts all traffic between your users and your server. Most hosting platforms handle this automatically, but there are still things that can go wrong: expired certificates, weak protocol versions, or missing redirect from HTTP to HTTPS.

Why it matters: Without proper TLS, passwords and personal data travel across the internet in plain text where anyone on the network can read them.

How to check: Visit your site and make sure the padlock icon is there. Then try visiting the http:// version (without the "s") — it should automatically redirect to https://. If it doesn't, you're leaking traffic.

If you're on Vercel, Netlify, or Cloudflare Pages, TLS is handled automatically. If you're running your own server, use Let's Encrypt for free certificates and make sure you redirect HTTP to HTTPS.


The 30-Second Version

If you only have 30 seconds, check these three things right now:

  1. Search your page source for API keys (View Source, Ctrl+F for "sk-" or "key")
  2. Check if your database has RLS enabled (Supabase dashboard or Firebase rules)
  3. Visit yourdomain.com/.env and make sure you get a 404

Or, even faster: run a free scan. SecureYourVibe checks all 7 items on this list (plus 140+ more) in about 30 seconds. No signup, no repo access — just a URL.


Why AI Tools Don't Handle This

It's not that AI coding tools are bad at security on purpose. It's that they're optimized to give you what you asked for — a working feature — as fast as possible. Security is rarely part of the prompt.

Think of it this way: if you ask Cursor to build a user registration form, it'll build a great form. But it probably won't:

These aren't bugs — they're omissions. And they're the exact things that attackers look for when scanning for easy targets.

The safest assumption is that your AI-built app has security issues unless you've specifically checked. This isn't a criticism of the tools — it's just how they work.

What to Do Next

Security doesn't have to be overwhelming. Start with the checklist above, fix the critical items first (API keys and database access), and work your way down. Most fixes take minutes, not hours.

And if you want to automate the whole process, that's exactly what we built SecureYourVibe for.

Check your app in 30 seconds

Paste your URL, get a letter grade, and see exactly what to fix — with copy-paste code for your platform.

Scan My Site Free →

Published by SecureYourVibe — the free security scanner for AI-built apps.

More posts