Claude Code security: what to check in what it ships
Claude Code turns a prompt into working, shippable code inside your own repo — fast. That speed is the point, and it's also where security gaps slip through: a hardcoded key, an endpoint with no auth, a file that shouldn't be public. This is the reference for what actually goes wrong in a Claude Code app, and how to check yours in about ten seconds.
Check your Claude Code app
Paste your deployed app's URL. The free scan reads it from the outside and checks for exposed data, secrets and files. No signup, no access to your repo, nothing changed.
Only scan apps you own or have permission for.Is Claude Code safe to use?
Mostly, yes — and it's worth separating two questions that "Claude Code security" tends to blur together. The tool itself is Anthropic's agentic coding assistant, and it runs with a permission model: it asks before running commands or editing files, supports allowlists, and works inside a workspace you control. Run it sensibly — review its changes, keep secrets in environment variables, don't blanket-approve everything — and it's safe to point at your codebase.
The code it produces is the other question, and it's the one that actually causes breaches. Claude Code writes real, deployable code at speed, and like any fast-written code it can ship with a secret in the wrong place or an endpoint missing a check. The tool asking permission doesn't guarantee the result is locked down — that part is still yours to verify. This page is about that second half.
On 31 March 2026, a routine npm release of Claude Code shipped a 59.8 MB source map that mapped its minified code straight back to ~512,000 lines of TypeScript across ~1,900 files — Anthropic's own source, exposed by a single missing .npmignore entry. No user data or model weights leaked, and it was pulled fast, but it's the perfect illustration: source maps expose your source, and shipping one is exactly the kind of thing that slips through when code moves quickly.
Deployed web apps leak their source the same way, through public .map files left in the build — which is one of the things the scan below checks for.
Where Claude Code apps break
These are the vulnerability classes that show up in apps built with Claude Code — or any AI coding tool that writes and ships full-stack code — ordered by how much damage they do.
Hardcoded or committed secrets
An API key written straight into the source, bundled into the frontend, or committed to .git. Because Claude Code works right in your repo, a key that lands in a file can end up deployed or pushed — where anyone can take it and spend your money.
Database or endpoints without authentication
Data that comes back, or actions that run, without a valid login — often because an API route or database (Supabase, Firebase and friends) got wired up while the access checks were skipped.
Exposed files
A deployed build that leaves .env, a .git folder or source maps publicly downloadable hands an attacker your keys and structure in one go.
Broken access control
A login exists, but the rules behind it let one user read or edit another's records, or reach an admin action they shouldn't.
Missing headers & weak transport
Absent security headers (clickjacking, MIME sniffing) and TLS issues. Minor next to an exposed secret, but part of a full picture.
None of these surface as an error. The app runs, the build succeeds, and there's no warning that the same data or key is reachable from the public internet. That gap between "it works" and "it's safe" is exactly where AI-written code gets caught — and speed makes it easy to ship before anyone checks.
What VibeCodingSecure checks on a Claude Code app
Give us the deployed URL and nothing else — no repo access, no login. The scan is passive and read-only, reading only what your app already exposes publicly, the same way an attacker would. It looks for:
- Exposed secret keys — it scans your frontend for Stripe, AI-provider and database secret keys (like Supabase
service_role) that should never leave the server. - Open databases — it checks whether Supabase, Firebase or similar backends return real rows without a login.
- Broken access control — endpoints and data that answer requests they should reject.
- Exposed files — reachable
.env,.git, backups and source maps. - Headers & transport — missing security headers and TLS weaknesses, reported as hardening, not alarms.
Is your Claude Code app exposing anything?
Find out in about 10 seconds. Free, no signup, read-only.
Only scan apps you own or have permission for.Using Claude Code securely
A few habits keep the tool's speed from turning into exposure:
- Keep secrets in environment variables, never in the source, and make sure they're in
.gitignorebefore the first commit. - Review changes before you ship — especially anything touching auth, database access or deployment config.
- Don't blanket-approve commands and edits; the permission prompts exist so you can catch the one that matters.
- Confirm auth is enforced on every route and table that holds data, not just added to the UI.
- Scan the deployed app — the only place these gaps become real is once it's live and reachable.