# Security Testing for AI Apps

AgentProof tests AI apps for leaked chats, exposed model keys, skipped usage limits and tools that act for the wrong user.

AI apps store chats, call model providers and let an assistant act for the user. AgentProof tests these parts of your app for security problems, and fixes your code when one lets the wrong person in.

## Your AI app is tested for problems in chats, keys, limits and tools.

- **CHATS** Can a user open another user's conversation by changing its ID?
- **SHARED LINKS** Does a shared chat link show more than the user meant to share, or keep working after it is deleted?
- **MODEL KEYS** Is your model provider's API key in the browser, where anyone can copy it and spend your credits?
- **USAGE LIMITS** Can a free user skip the message limit and run up your model bill?
- **FILES** Can a user download a file that another user uploaded for the assistant to read?
- **ASSISTANT TOOLS** Can a user get the assistant to read or change data that belongs to someone else?

The Attack Agent **sends each of these requests to your app** and records what comes back.

## An example: free users could go past their plan's message limit.

Example finding: The free plan's message limit is only checked in the browser

```
REQUEST
POST /api/chat
Free account, 51st message today

RESPONSE
200 OK
Limit is 50. Message sent to the model.

FIX
+ const used = await countMessagesToday(user.id);
+ if (used >= user.plan.dailyLimit) return tooManyRequests();
  const reply = await model.respond(messages);

RETEST
POST /api/chat
429 Too Many Requests. Fixed.
```

The limit was checked in the browser, which the user controls. The fix **checks it on the server**, before the model is called.

## A model key found in the browser is moved to your server.

- **Moves the call:** Your server calls the model provider, so the key never reaches the browser again.
- **Reports the old key:** A key that was exposed must still be replaced. The report says so, because only you can do that at your model provider.

## Questions AI teams ask about AgentProof, with answers.

- **Does it test the model itself?** No. It tests your app: the requests, permissions, keys and limits around the model. How good the model's answers are is not part of the check.
- **How do fixes reach our code?** You choose: a pull request your team reviews, an automatic merge after your checks pass, or a change applied straight to your running app.
- **How often is our app tested?** Monthly, weekly or daily, depending on your plan. Every check tests the app as it is that day, including features you shipped since the last one.

## Plans for one AI app start at $199 a month.

Every plan includes both agents and **your whole team at no extra cost**. Weekly and daily checks cost $399 and $999 a month.

- [See plans](/pricing/)
- [See what the Attack Agent does](/attack/)

## AgentProof also tests these kinds of apps.

- [SaaS](/solutions/saas/): Checks that each customer account can reach only its own data, roles and billing.
- [Fintech](/solutions/fintech/): Checks accounts, transfers, amounts and approvals in apps that move money.
- [Health tech](/solutions/health-tech/): Checks that patients and staff see only the records they are allowed to see.
- [Marketplaces and stores](/solutions/marketplaces/): Checks prices, orders, payouts and the line between buyers and sellers.
- [Apps built with AI tools](/solutions/ai-built-apps/): Checks database rules, exposed keys and unprotected routes in apps written with AI coding tools.

AgentProof is in development. The example finding on this page is an illustration, not a result from a customer's app.
