SECURITY
Why prompt injection differs from classical injection attacks and which practical defense-in-depth measures help reduce risk.

LLM-powered applications often process user prompts, retrieved documents, web content and tool outputs in the same conversational context. That creates a difficult security challenge: untrusted content can attempt to influence the model's behavior, override intended instructions or manipulate tool usage.
There is no clean instruction and data boundary
In traditional SQL injection, parameterized queries provide a strong separation between executable query structure and user-provided data. LLM systems do not have an equally strict boundary because the same model context can contain system instructions, user requests, retrieved content and external data.
A malicious document can include text that attempts to redirect the model, request sensitive information or convince the system to call tools in unintended ways.
Defense in depth, not a single fix
Prompt rules alone are not enough. A stronger design combines multiple layers: input validation, trusted-content boundaries, output validation, restricted tool permissions, confirmation requirements and logging.
The goal is not only to make an attack less likely, but also to reduce what an attacker can achieve if untrusted instructions influence the model.
Human confirmation matters for high-impact actions
Actions such as sending emails, deleting records, making purchases, changing permissions or exporting sensitive data should not be performed solely because an LLM generated a tool request.
A confirmation step creates a clear boundary between an assistant recommendation and an irreversible user-approved action.
“An LLM should help decide what to do, but deterministic application controls should decide what it is allowed to do.”
Enjoyed this article?
Get new posts in your inbox.
Occasional writing about software engineering, AI, security, cloud infrastructure, and the projects I build.
No spam. Unsubscribe whenever you want.
Topics

