Vibe coding security: ten things to check before real users arrive
AI app builders make it easy to ship something that works. They do not make it easy to see what is exposed. Most problems in vibe-coded apps are not clever attacks; they are a handful of missing basics. Go through this list before you invite real users or store real data, and again after every big change.
The checklist
No secret keys in the browser
Keys for AI services, payments or email must live on the server. Open your app, look at its page source and network requests in the browser's developer tools, and search for "key", "secret" or "sk-". Anything secret you find there can be copied by anyone.
Database access rules are switched on
If your app uses Supabase or a similar service, check that row-level security is enabled on every table, and that each rule really limits people to their own rows. A table with no rules is open to anyone who has the public key.
Users cannot see each other's data
Create two test accounts. Logged in as one, try to open the other's records by changing an ID in the address bar or in a request. If it works for you, it works for anyone.
Permissions are checked on the server
Hiding an admin button is not protection. Every action that changes data must be checked on the server, not only in the interface.
Login is handled by a proven service
Use the platform's own authentication or a well-known provider, never a home-made table of passwords. Test password reset and email confirmation from start to finish.
Payments are confirmed by the payment provider
An order counts as paid only when the payment provider confirms it to your server, never because the page in the browser says so.
Forms and AI features have limits
Sign-up, contact forms and anything that calls an AI service need rate limits, so a bot cannot flood you or run up your bills overnight. Set spending limits with the AI provider too.
No secrets in your code history
A key committed to GitHub stays in the history even after you delete it. If one was ever committed, replace it with a new one at the provider.
Backups exist, and you have tried a restore
Know where your backups are and how to restore one — and try it once, before the day you need it.
You know what runs where, in whose name
Hosting, database, domain, payment and AI accounts registered to you or your company, with access you control and can take away from anyone else.
If you find a problem
Fix the most dangerous first. Replace any exposed key at its provider straight away, then switch on access rules for open data, then work through the rest. If real people's data may have been exposed, check whether you need to inform them.
Why AI tools miss this
AI builders answer the request in front of them: make this screen, add this button. Security lives in the parts nobody asks for — rules, checks and limits that are invisible in a demo. An AI will often fix a specific issue well when you describe it precisely. It will rarely notice one you did not mention.
When it is worth getting help
- The app stores customer accounts, payments or personal data.
- You found problems on this list and are not sure you fixed them properly.
- You cannot tell what runs where, or in whose name.
Frequently asked questions
Are apps built with Lovable or Bolt secure?
The platforms give you the building blocks. Whether your app is secure depends on how it is set up — above all, on the database access rules and on where your keys live. Run the checklist to find out.
Can I just ask the AI to fix the security issues?
For a specific issue, described precisely, often yes. Then check the result yourself — for example with the two-account test — because an AI may say something is fixed when it is not.
How do I check whether my API key is exposed?
Open your app in a browser, open the developer tools, and search the page source and network requests for the key or for words like "key" and "secret". If it is there, replace it at the provider and move it to the server.
Do I need a professional security review?
For an app with payments or personal data, a review by someone experienced is worth it. This checklist catches the most common gaps, not every possible one.