Emerald Red Team

How it works

Real attacks. Safe by design.

We test your app the way attackers do, inside guardrails that make it safe to run on the thing you just shipped.

Four steps

  1. 01

    Connect

    Paste your URL. Optionally link GitHub, Supabase or Firebase so we can see the whole stack.

  2. 02

    Verify

    Prove you own it with a DNS record, a file or a meta tag. Nothing beyond a browser-level look happens until you do.

  3. 03

    Attack (safely)

    We run the attacks that actually hit AI-built apps: leaked keys, open tables, broken access, injection. Throttled, scoped and non-destructive.

  4. 04

    Fix

    Every finding comes with a prompt for your AI tool, a ready-to-paste file, or a pull request. Re-scan confirms it.

Scan profiles

ProfileModesWhat it doesTimeRequest cap
QuickPassiveWhat any browser can see: your JavaScript, headers, TLS, trackers and legal pages.~1 min150
StandardAuthenticated · code · backendLogs in as two test users to find broken access control, reads your repo and backend config.5–15 min3,000
DeepActive · writeSafe injection payloads, AI-feature attacks and canary write tests you explicitly allow.15–45 min15,000
LaunchEverything + reportDeep plus the full lawsuit-risk module and a Launch Readiness Report.15–45 min15,000

The guardrails

Verification before anything active

Nothing beyond a browser-level look runs until you prove you control the target with a DNS TXT record, a file at /.well-known/redteam-verification.txt, a meta tag, or a platform connection. Shared hosting domains (like *.vercel.app) are verified per exact host.

Scope lock

Every request is checked against your verified scope, including after redirects. Third-party hosts we see are recorded but never tested. In our headless browser, requests to third parties are blocked instead of sent.

Gentle by default

5 requests per second per host by default. We halve the rate on HTTP 429 or 503 and stop after 20 consecutive server errors: “Your app started erroring, so we stopped to avoid harm.”

No data taking

Data-exposure checks count records instead of reading them. Evidence is truncated and redacted before storage. Secrets are stored only as a fingerprint and a mask like sk_l…9fQ2.

Safe payloads only

Injection tests use a reviewed allowlist of non-destructive payloads. No DROP, DELETE or UPDATE. Write tests create clearly marked canary records and delete them.

What we never do

  • Never scan sites you can't prove you own
  • Never download your users' data
  • Never store your secrets
  • Never run destructive payloads
  • Never keep hammering if your app starts erroring

Automated testing finds common and high-impact issues. It can't prove an app is secure and isn't a substitute for a professional penetration test. Responsible Scanning Policy