Anyone can use this without logging in
This part of your app works without signing in, while the similar parts next to it ask people to sign in first. A stranger could use it directly.
Ziora checks the code you or your AI wrote and tells you, in plain words, where someone could break in and how to fix it.
Attackers rarely need to be clever. They look for a door someone forgot to lock. Ziora checks the doors for you.
AI coding tools sometimes paste API keys and passwords straight into your files. Ziora finds them, and never shows the full secret on screen.
Ziora lists every page and API in your app and points out the ones that let anyone in without logging in.
Ziora flags pages that load a record from the link without checking that anyone is logged in.
Ziora follows what visitors type, line by line, and shows you where it reaches your database unchecked.
Ziora checks your packages against a public list of known security problems.
Not sure about some of these? You don’t have to be. Ziora checks them for you.
You don’t need to know the jargon or set anything up. If you can open a folder, you can use Ziora.
Pick the folder your app is in, or paste its GitHub link. No account, no sign-up. No project handy? Try the demo app that comes with Ziora.
Works with websites, APIs and mobile apps
Ziora lists the problems to fix before you ship, urgent ones first. Each one says in plain words what could happen, where it is and how to fix it.
Your code stays on your computer the whole time
Press Fix all with AI and paste the instructions into Cursor, Claude Code, GitHub Copilot or Windsurf. When your AI is done, Ziora checks what it fixed.
See what’s fixed and what’s still open
This is a working model of Ziora with its demo app, payments-api, and the 8 problems Ziora really finds in it. It opens in Simple mode, like the app does. Turn on Expert mode to see the full security workspace.
Problems to fix
payments-api · checked just now
8 problems to fix before you ship
2 are urgent, so start there. Every problem comes with a fix your AI can apply.
Fix now Someone could take advantage of these today.
Anyone can use this without logging in
This part of your app works without signing in, while the similar parts next to it ask people to sign in first. A stranger could use it directly.
Attackers could read or change your database
Text sent to your app goes straight into a database command, so someone can slip in their own commands to read, change or delete your data.
You make apps with AI tools and you ship fast. Ziora tells you what to fix before real users show up.
Check the work before you hand it over, and send a report with it.
Open the demo app that comes with Ziora and see real security problems, and how each one gets fixed.
Turn on Expert mode for every route, data flow and finding in one place, with triage that survives every re-scan. The details
Ziora runs on your computer, not in the cloud. You don’t upload your code, and you don’t need an account.
See exactly when Ziora goes onlineYour first 5 scans are free, with no account and no card, and each comes with a rescan to check your AI’s fixes. Plans start at ₦3,000 ($5) a month.
From here on, it’s the detail. This is what Expert mode shows, one switch away in the app: how Ziora maps your app, traces data and works with your AI agent, and the checks it runs.
Only wanted to know if your app is safe? Skip to the download
Ziora lists every route, the guard that protects it and the risky calls behind it, including webhooks, admin pages and mobile deep links.
Then it compares each route with its neighbours. A scanner can’t know which routes should need a login, but when three routes in a file require one and the fourth doesn’t, Ziora flags it.
| Method | Path | Auth | Handler | Flags |
|---|---|---|---|---|
| GET | /health | Public | app/main.py:13 | |
| POST | /auth/login | Public | app/routes/auth.py:7 | No rate limit |
| POST | /payouts | require_admin | app/routes/payouts.py:9 | |
| POST | /payouts/{payout_id}/retry | require_user | app/routes/payouts.py:21 | Weaker guard |
| GET | /refunds/search | require_user | app/routes/refunds.py:8 | |
| GET | /refunds/{refund_id} | require_user | app/routes/refunds.py:15 | |
| POST | /refunds/{refund_id}/approve | No auth | app/routes/refunds.py:22 | Unlike its siblings |
| POST | /webhooks/paystack | No auth | app/routes/webhooks.py:9 | No signature check |
Showing 8 of 15 routes. Select a flagged row to see why Ziora flagged it.
For each risky call, Ziora shows where its input came from and every line it passed through, so confirming a finding takes seconds.
When Semgrep flags the same line, the two results merge into one finding. You never triage the same bug twice.
status = request.query_params.get("status", "pending")query = f"SELECT * FROM refunds WHERE status = '{status}'"return await db.fetch_all(query)
Request input reaches raw SQL · found by Ziora’s built-in checks
Fixed · no request value reaches raw SQL
Ziora writes the brief, your agent makes the changes, and Ziora checks them. It works with Cursor, Claude Code, GitHub Copilot, Windsurf and any other agent that can edit your files.
payments-api-ai-fix-plan.md8 tasks# Security fix plan: payments-api ## Instructions for the agentWork through the tasks in order; the most severe come first.… ## Tasks (8)- [ ] **T1** Critical: Route has no authentication, unlike its 2 siblings `app/routes/refunds.py:22`- [ ] **T2** High: SQL query built from request input `app/routes/refunds.py:10`… ### T1. Route has no authentication, unlike its 2 siblings**Where:** `app/routes/refunds.py:22-28` · **Weakness:** CWE-306**Done when.** An anonymous request is rejected with 401, and a user without the right role or ownership gets 403. Legitimate callers still work.…
Rescan
Compares the code now with the plan you gave your agent.
Ziora’s own analysis covers what generic scanners tend to miss: access control, data flow and framework settings. Semgrep, gitleaks and OSV-Scanner add their rules on top.
No built-in check matches that. Semgrep’s rules may still cover it.
Findings carry CWE IDs, and mobile findings are tagged with OWASP MASVS controls.
5 free scans · Version 0.1.0
We are finishing the installers now. Windows comes first, then macOS and Linux.
How to verify a download All downloadsZiora is a desktop app. Open this page on your computer to download it.
No. Ziora opens in Simple mode, which explains each problem in plain words, shows where it is and how to fix it. If you build with an AI coding tool, Ziora writes the fix instructions for it. The demo app that comes with Ziora is a good place to start.
Simple mode is the default. It shows the problems to fix before you ship, urgent ones first, each with a Copy fix for your AI button. Expert mode is a switch in the sidebar for security pros. It adds the attack surface, code review with coverage, triage and exports. Both modes run the same checks, and Ziora remembers which one you picked.
You get 5 free scans with no account and no card, each with one rescan to check your fixes. After that, plans start at ₦3,000 ($5) a month, renewed automatically. Cancel any time.
No. Ziora reads your code on your computer. It goes online for things like updates, downloading scanners and checking your packages against a public list of known problems, which sends package names and versions, never code. Ask Ziora AI is the one feature that sends code, and only when you use it: the code around that one problem, with secrets removed, to Ziora’s AI. The security page lists every connection.
Websites and APIs built with FastAPI, Flask, Django, Express, NestJS, Next.js, Laravel, Rails, Spring Boot, ASP.NET Core, Go and more, and mobile apps built with Flutter, Android, iOS, React Native or Capacitor.
Cursor, Claude Code, GitHub Copilot, Windsurf, and any other AI coding tool that can edit your files. Ziora writes the instructions and you paste them in. Cursor and Claude Code can also connect to Ziora over MCP, to read the problems and check their own fixes.
No. Ziora’s own checks work on their own. On Windows, Semgrep, gitleaks and OSV-Scanner all come with Ziora, so there is nothing else to install. On macOS and Linux, Ziora downloads gitleaks and OSV-Scanner for you and makes sure each download is genuine. Semgrep is optional there and needs Python.
Talk to the security engineer who built Ziora. Email us to set up a free 15-minute call.
or write to [email protected]