Secrets in code
Hardcoded API keys, passwords, DB connection strings in source or build output.
Coverage · the complete map
How it works
What you get back
# Security Audit: your-app.com
🔴 CRITICAL: Your OpenAI key is in the browser bundle
Anyone who opens DevTools on your site can read your OpenAI key
(found in /assets/index-4f2a.js, masked sk-proj-…aB12) and run
unlimited requests on your account. You pay the bill.
→ Fix tonight: rotate the key, move it behind a server route.
Maps to: OWASP LLM02 · CWE-312 · check #2 ai-keys
🔴 CRITICAL: /api/users returns the customer list with no login
Maps to: OWASP API1 (BOLA) · CWE-284 · check #7 api-auth
🟠 HIGH: CORS reflects any origin with credentials
Maps to: OWASP A05 · CWE-942 · check #19 cors
Group 1 · Secrets & exposure · 6 checks
Hardcoded API keys, passwords, DB connection strings in source or build output.
OpenAI / Anthropic / Gemini keys shipped to the browser or committed to the repo.
.env, .git, configs your live site accidentally serves.
World-readable S3 / GCS / Azure / Firebase / Supabase buckets.
Tokens and personal data leaking through logs and error responses.
MD5/SHA1 for passwords, ECB mode, hardcoded IVs, Math.random() tokens.
Group 2 · Access control · 7 checks
/api/* returning user data with no login check.
Weak or missing auth on mutations, broken JWT, default credentials.
Change the number in the URL, read records that aren't yours.
Extra JSON fields that set role/isAdmin you never meant to expose.
Admin pages that send the data first, then redirect you away.
Supabase / Firebase with no security rules, where the front-door key opens everything.
No record of logins, permission changes, payments, so you can't detect or investigate a breach.
Group 3 · Injection & input · 5 checks
SQL / XSS / command / template injection from unsanitized input.
Your server (or AI agent) fetching attacker-controlled URLs / cloud metadata.
Unrestricted uploads, traversal in filenames, paths to remote code execution.
../ in a file path that lets anyone read arbitrary files.
pickle / unserialize / readObject on untrusted input.
Group 4 · Web hardening · 6 checks
Settings that let any website read your logged-in users' API responses.
CSP / HSTS / nosniff, and cookies without Secure/HttpOnly/SameSite.
Unsigned Stripe/GitHub webhooks and missing CSRF protection.
Brute-force, and AI-endpoint cost-bombing that drains your wallet.
User-controlled redirects used for phishing and token theft.
Debug mode, stack traces, open dashboards, GraphQL introspection in production.
Group 5 · API-specific · 4 checks
Undocumented, deprecated, debug or /v1 endpoints still live.
Uncapped page size, request body, batch size, GraphQL depth.
No bot gate on signup / checkout / referral: free-tier farming, scalping, fraud.
Trusting an external API's response blindly, with no validation or timeout.
Group 6 · Supply chain & integrity · 2 checks
Outdated, vulnerable, typosquatted or confusable packages; dependency confusion.
Unpinned GitHub Actions, curl | bash installs, unsigned auto-update.
Group 7 · AI / LLM · 10 checks · our niche
Users overriding your rules to make the model do things you didn't allow.
RAG docs, fetched pages, emails, DB rows carrying hidden instructions into the prompt.
Keys or load-bearing authz rules baked into the prompt as if it were private.
Model output flowing into HTML / eval / SQL: injection in reverse.
Feeding the model more data than the end user is allowed to see.
An AI agent wired to shell, raw SQL or money-moving APIs with no guardrail.
A RAG query with no per-tenant filter, so one customer retrieves another's docs.
A knowledge base anyone can poison with documents the model later trusts.
torch.load / trust_remote_code on third-party weights.
Slopsquatting, and using a raw LLM answer as the sole decider for auth or pricing.
Group 8 · Mobile · 8 checks
Hardcoded keys in the bundle, cleartext traffic, insecure storage, exported components.
Biometric or role checks decided on the device, where anyone can flip them.
Unencrypted SQLite/Realm, world-readable files, secrets in device logs.
Trust-all overrides that let anyone MITM the app on a hostile network.
No obfuscation, no root/jailbreak detection, no tamper checks.
Deep links, custom URL schemes, WebView bridges and exported IPC.
Over-broad permissions, undisclosed tracking, clipboard and screenshot leaks.
Unpinned SDK versions, abandoned ad/analytics libraries.
References · what the 48 map to
Access control, crypto, injection, misconfiguration, vulnerable components, logging.
BOLA, broken auth, property-level authz, resource consumption, business-flow abuse.
Credential use, supply chain, auth, input/output, comms, privacy, binary, storage.
Prompt injection, output handling, data leakage, supply chain, excessive agency, RAG.
The most dangerous software weaknesses; every check cites its CWE.
Findings also map to compliance controls, surfaced only if you ask.
Honest boundaries