Is my Base44 app secure? 8-point checklist + free scan
Eight things to check on a live Base44 app, each with a fix prompt you can paste straight into Base44. Or run the free scan and get all eight checked in seconds.
No secret API keys in your HTML or JS bundles
We scan your page and up to 15 same-origin JS bundles for live Stripe, OpenAI, Anthropic, AWS, GitHub, Google, Slack keys and private key blocks.
Fix prompt (copy into Base44):A secret API key is exposed in my frontend code. Move every call that uses it into a Base44 backend function using a stored secret, remove it from client code and any VITE_ variables, and tell me which keys I must rotate.
No Supabase service_role key in the browser
A service_role key bypasses Row Level Security. We decode Supabase JWTs in your bundles and flag any with role service_role.
Fix prompt (copy into Base44):My Base44 app ships a Supabase service_role key to the browser. Replace it with the anon key in client code, move privileged queries into a Base44 backend function using a stored secret, make sure RLS is enabled on every table, and remind me to rotate the service_role key.
/.env is not publicly readable
We request /.env on your domain and flag it if it returns environment variables.
Fix prompt (copy into Base44):My deployed Base44 site serves /.env publicly. Make sure .env files are never copied into the build output or public folder, add them to .gitignore, and tell me to rotate every value that was in it.
/.git is not publicly readable
We request /.git/HEAD and /.git/config, which expose your source history if served.
Fix prompt (copy into Base44):My deployed Base44 site serves the /.git folder. Exclude .git from the published output and confirm /.git/HEAD returns 404 after redeploying.
No production source maps
We probe the .map files for your JS bundles. Public source maps hand out your original source code.
Fix prompt (copy into Base44):My Base44 production build publishes JavaScript source maps. Disable them for production (vite.config: build.sourcemap = false) and redeploy.
HTTPS with a valid, non-expiring certificate
We flag plain-HTTP sites and certificates that are expired or expire within 14 days.
Fix prompt (copy into Base44):Make sure my Base44 app is only served over HTTPS: redirect HTTP to HTTPS and check the custom domain settings so the SSL certificate auto-renews.
Security headers: HSTS, CSP, X-Frame-Options, nosniff, Referrer-Policy
We read your response headers and flag each missing one.
Fix prompt (copy into Base44):Add these HTTP security headers to my published Base44 app: Strict-Transport-Security, Content-Security-Policy, X-Frame-Options (or CSP frame-ancestors), X-Content-Type-Options: nosniff and Referrer-Policy. Keep the CSP compatible with my Supabase and analytics domains.
Homepage loads: no error page, blank build or slow response
We check the HTTP status, response time (warn over 5 s), near-empty pages and visible error messages.
Fix prompt (copy into Base44):My Base44 app's homepage is broken (error page, blank page or very slow). Look at the latest change you made, check the console and build errors, and fix or roll back that change.
Free scan of your Base44 app
Passive, public-only, no sign-up. Try it on https://your-app.base44.app.
FAQ
Is my Base44 app secure by default?
Not necessarily. AI-built apps often ship secret keys in client bundles, miss security headers or publish source maps. Run the 8 checks above or a free scan to find out.
What does the free scan check?
Leaked secret keys (including Supabase service_role) in your HTML and JS, public /.env, /.git and source maps, HTTPS and certificate expiry, security headers, and whether the homepage loads.
Is the scan safe to run on my live app?
Yes. It is passive and public-only: it fetches the same pages and files any visitor could. Only scan sites you own or are authorized to scan.
Do I need an account?
No. The free scan needs no sign-up. Each finding comes with a copy-paste fix prompt.