ChatGPT, Claude and Gemini at work: how to use them without exposing your data
Practical rules for using generative AI at work: which accounts to choose, what not to paste into prompts, a simple internal policy, GDPR and shadow AI.
4 min read
What prompt injection is, why it tops the OWASP Top 10 for LLM Applications and which defences actually work for chatbots and AI agents.
Prompt injection is an attack in which someone inserts malicious instructions into the text a language model reads, to make it do something it shouldn’t: reveal confidential information, ignore its rules, use a tool in a harmful way. It works because, to a model, instructions and data are the same text: there is no hard separation between “what it must do” and “what it is reading”. It is the number one risk in the OWASP Top 10 for LLM-based applications.
The indirect form is the most dangerous because it targets precisely the most useful agents: those that read email, browse the web, consult documents and can take action.
The 2025 edition of the OWASP Top 10 for LLM Applications lists the ten main risks. Many of them are connected:
| Code | Risk | In practice |
|---|---|---|
| LLM01 | Prompt injection | Malicious instructions in the text change the model’s behaviour |
| LLM02 | Sensitive information disclosure | The model reveals personal data, secrets or confidential information |
| LLM03 | Supply chain | Compromised third-party models, libraries or data |
| LLM04 | Data and model poisoning | Manipulated training or context data |
| LLM05 | Improper output handling | The model’s output is used without checks, for example in a query or on a web page |
| LLM06 | Excessive agency | The agent has more permissions or tools than it needs |
| LLM07 | System prompt leakage | Internal instructions and secrets written into the prompt leak out |
| LLM08 | Vector and embedding weaknesses | Uncontrolled access to the knowledge bases used for RAG |
| LLM09 | Misinformation | False answers presented as true |
| LLM10 | Unbounded consumption | Requests that send costs or load through the roof |
Prompt injection is often the way in; excessive agency (LLM06) and improper output handling (LLM05) determine how much damage it can do.
No filter blocks every prompt injection. Effective protection is layered, and most of it sits outside the model.
The agent should be able to do only what the task requires, with the permissions of the user it is working for. In the systems we design, the tools available to the agent depend on the role, and the check happens on every call. If an agent cannot export the customer list, no hidden instruction can make it export it.
Payments, messages to external recipients, deletions and bulk changes must go through explicit confirmation. The agent prepares, the person approves.
External content should be passed to the model clearly delimited and marked as untrusted data. This is not enough on its own, but it greatly reduces the most basic attacks and makes checks easier.
Many attacks aim to get data out: links to external domains, images that load a URL with the data in the query string, API calls. It is wise to allow only known domains, validate output before using it in other systems and never run generated code or queries without checking them.
Keys, passwords and confidential rules do not belong in the system prompt: sooner or later someone will get the model to repeat it. Secrets live in the systems the agent calls, protected by their own access controls.
Per-user usage limits, a log of every action and alerts on anomalous behaviour make it possible to spot an attack and limit the damage, including the financial damage.
An AI assistant should be deliberately attacked by someone who knows the techniques, before it goes live and after every change of model, prompt or tools.
In our AI system security tests, we follow a precise sequence:
If you are taking a chatbot or an AI agent into production, we can test it before someone else does.
No. Defensive instructions in the prompt help, but an attacker can get around them by rephrasing the request. Effective protection lies outside the model: limited permissions, confirmations for risky actions, output checks and data separation.
It is less exposed, but it can still reveal its system prompt or data contained in the documents it draws on, or give harmful answers in the company's name. The risk grows considerably when the chatbot becomes an agent that can act on other systems.
Before it goes into production, whenever the model, prompt or tools change, and periodically, because attack techniques evolve. Automated regression tests help avoid reintroducing vulnerabilities that have already been fixed.
Practical rules for using generative AI at work: which accounts to choose, what not to paste into prompts, a simple internal policy, GDPR and shadow AI.
4 min read
Penetration testing guide: how it differs from a vulnerability assessment, types, phases, what the report must contain, how often to test and how to prepare.
4 min read
What an AI agent is, how it differs from a chatbot, which SMB processes it can handle and how to introduce it with permissions, controls and costs in check.
6 min read