Das Missverständnis: "Einfach die Eingabe validieren"
Wer aus der Anwendungssicherheit kommt, fragt oft, ob Prompt Injection nicht einfach fehlende Eingabevalidierung ist: Prompt prüfen, gefährliche Teile entfernen, Problem gelöst. Die Frage ist berechtigt, und die Antwort lautet: teilweise, aber anders als erwartet.
Klassische Eingabevalidierung prüft, ob ein Wert einer erwarteten Syntax, einem Typ, einer Länge, einem Enum, einem Wertebereich, einem Dateiformat oder einem Protokollvertrag entspricht. Prompt Injection betrifft dagegen, wie bedeutungstragende natürlichsprachliche oder multimodale Inhalte im Modellkontext interpretiert werden, auch Inhalte, die für ihren fachlichen Zweck völlig gültig sind.
Der Artikel baut auf Anweisungen und Anweisungshierarchien, Vertrauensgrenzen und Modellkontext und RAG und Retrieval auf.
Was klassische Eingabevalidierung gut kann
Eingabevalidierung ist die richtige deterministische Kontrolle überall dort, wo die Anwendung die erwartete Form eines Werts kennt: Kennungen, Typen, Längen, Enums, Zahlenbereiche, Datumswerte, Dateiformate, Zielformate, Tool-Parameter, Schemas und Protokollnachrichten.
Sie weist fehlerhafte Daten früh ab, senkt Parser- und Verarbeitungsrisiken und liefert späteren Kontrollen saubere, typisierte Werte. Nichts in diesem Artikel spricht dafür, sie abzuschaffen.
Warum natürliche Sprache anders ist
Ein Support-Ticket, eine E-Mail oder ein Dokument kann ein strukturiertes Datei- oder Nachrichtenformat haben. Seine natürlichsprachlichen Inhaltsfelder bieten aber keine parsergestützte semantische Grenze zwischen Geschäftsdaten und Anweisungen an das Modell. Dieselben Wörter können Zitat, Beschreibung, Bitte oder etwas sein, das ein Modell als Vorgabe behandelt, je nach Kontext.
Ein Validator kann bestätigen, dass der Text eine Zeichenkette mit zulässiger Länge und Kodierung ist. Er kann nicht deterministisch bestimmen, wie ein Modell diesen Text interpretiert, sobald er modellsichtbar wird.
Gültige Geschäftsinhalte können ein Modell beeinflussen
Prompt Injection kann über völlig gültige Inhalte ankommen: Nutzernachricht, Support-Ticket, E-Mail, Dokument, Wiki-Seite, Webseite, Suchergebnis, Tool-Ausgabe, OCR-Text oder abgerufenen Chunk. Siehe Direkte Prompt Injection und Indirekte Prompt Injection.
Derselbe Text kann legitime Geschäftsdaten sein und trotzdem anweisungsähnliche Bedeutung enthalten. Ihn abzulehnen kann die Fachfunktion brechen; gültige Geschäftsinhalte erhalten dadurch nicht automatisch Anweisungsautorität oder Anwendungsberechtigung; fachliche/Quellautorität wird getrennt über Provenienz und Source-of-Truth-Regeln entschieden.
Syntax, Semantik und Autorität
| Frage | Beispielprüfung | Wer sie beantworten kann |
|---|---|---|
| Syntax | Ist das eine wohlgeformte Zeichenkette, ID oder ein Dokument? | Deterministischer Validator oder Parser |
| Semantik | Was bedeutet der Text, und könnte ein Modell einen Teil als Vorgabe behandeln? | Semantische Analyse kann Bedeutung einschätzen; kein deterministischer Validator garantiert die Modellinterpretation, Detektoren liefern probabilistische Signale |
| Autorität | Ist diese Quelle maßgeblich, und darf dieser Principal diese Wirkung auslösen? | Anwendungseigene Provenienz, Autorisierung und Flussrichtlinien |
Syntaktisch gültig, schemakonform, wohlgeformt, sicher kodiert oder von einem Parser akzeptiert zu sein, begründet weder Quellvertrauen noch Anweisungsautorität, Nutzerautorisierung, Datenflusserlaubnis oder Aktionsautorisierung.
Warum Stichwortsperren und "Bereinigung" unvollständig sind
Freie Sprache zu bereinigen ist nicht dasselbe, wie ihre Bedeutung zu neutralisieren. Das Entfernen von Zeichen, Trennzeichen oder Stichwörtern kann legitime Daten beschädigen und trotzdem Umschreibungen, andere Sprachen, indirekte Formulierungen, multimodale Inhalte und spätere Transformationen wie Zusammenfassung oder OCR verfehlen.
Inhaltsprüfung ist nützlich, aber probabilistisch
Eingabe- und Inhaltsprüfung und Erkennung von Prompt Injection können die Exposition senken, verdächtige Inhalte in eingeschränkte Abläufe lenken und Evidenz erzeugen. Klassifikatoren für natürliche Sprache haben falsch positive und falsch negative Ergebnisse.
Ein Detektor, der Inhalte markiert, erteilt oder verweigert selbst keine Berechtigung, und ein Detektor, der nichts findet, darf ebenfalls keine Berechtigung erteilen. Die Berechtigungsentscheidung bleibt bei Autorisierung und Flussrichtlinien.
Wo Allowlists gut funktionieren
Allowlists sind am stärksten, wo die Domäne tatsächlich endlich und strukturiert ist: Enum-Auswahl, Ressourcen-IDs, Operationsnamen, freigegebene Tool-Namen, Zielklassen und begrenzte Zahlenwerte.
Beliebige natürliche Sprache lässt sich nicht per Allowlist erfassen, ohne ihre Fachfunktion zu verlieren. Freitext bleibt variabler Inhalt; Entscheidungen fallen an den strukturierten Werten drumherum.
Strukturierte Tool-Argumente und Schemas
Ein Tool-Schema oder JSON-Schema prüft die Form: Pflichtfelder, Typen, Formate, Enums. Es entscheidet nicht, ob die angeforderte Aktion erlaubt ist, ob ein Dokument maßgeblich ist oder ob ein Ziel zulässig ist.
Zuerst werden die vorgeschlagenen Argumente validiert, dann geht die aufgelöste, typisierte Aktion an die Agentenautorisierung und die Flussrichtlinien.
Die Analogie zur klassischen Injection: nützlich und begrenzt
Klassische Injection und Prompt Injection haben gemeinsam, dass auf irgendeiner Ebene Daten und Steuerung verwechselt werden. Diese Intuition hilft.
SQL-Parametrisierung funktioniert, weil SQL eine formale Grammatik hat: Die Anwendung legt die Abfragestruktur fest und übergibt Werte getrennt, und der Datenbankparser setzt die Trennung deterministisch durch. Natürlichsprachlicher Modellkontext bietet in der Regel keine ebenso deterministische, parsergestützte Trennung zwischen "Anweisung" und "Daten".
Trennzeichen, Labels und Spotlighting: Robustheit, keine Durchsetzung
Trennzeichen, XML-artige Tags, Labels und Spotlighting / Datenmarkierung können einem Modell helfen, Daten von Anweisungen zu unterscheiden, und die Robustheit verbessern.
Sie werden aber weiterhin vom Modell interpretiert. Sie sind keine deterministischen Vertrauensgrenzen und ersetzen keine Kontrollen außerhalb des Modells.
Provenienz und Source-of-Truth-Regeln
Datenprovenienz hält fest, woher Inhalte stammen und was mit ihnen geschah. Source-of-Truth-Regeln legen fest, welche Quelle für einen bestimmten Zweck maßgeblich ist.
Beides folgt nicht aus Gültigkeit. Ein gültiges, relevantes Dokument kann trotzdem die falsche Autorität sein. Provenienz- und Autoritätsmetadaten bleiben anwendungseigen und außerhalb bearbeitbarer Inhalte.
Autorisierung und Least Privilege
Autorisierung fragt, ob dieser Principal diese Aktion auf dieser Ressource mit diesen Parametern im aktuellen Zustand ausführen darf. Sie ist deterministisch und stützt sich auf anwendungseigene Identität, Mandant und ACLs, nie auf Behauptungen im Text.
Least Privilege begrenzt den Schaden, wenn eine Beeinflussung gelingt. Das Risiko von Prompt Injection hängt von Inhaltseinfluss, Modelleinfluss, erreichbaren Daten und Fähigkeiten sowie davon ab, ob deterministische Anwendungskontrollen die Wirkung verhindern.
Informationsflusskontrolle und Zielrichtlinien
Informationsflusskontrolle fragt, ob Daten von einer Quelle oder Klassifizierung zu einer Senke oder einem Ziel fließen dürfen. Eine wohlgeformte Adresse oder URL kann trotzdem ein verbotenes Ziel sein.
Ausgabevalidierung und senkenspezifische Kodierung
Ausgabevalidierung prüft, ob eine vorgeschlagene Ausgabe dem Vertrag der Anwendung oder Senke entspricht: Struktur, Format, zulässige Werte.
Senkenspezifisches Kodieren, Escaping und Parametrisieren sind ein eigener Schritt. Richtig an ihrer Senke eingesetzt, verhindern sie Klassen wie SQL-, HTML- oder Command-Injection. Sie machen aus nicht vertrauenswürdiger Sprache keine vertrauenswürdigen Anweisungen, und Modellausgabe bleibt variable Daten, auch wenn die Eingabe die Validierung bestanden und das Modell seine Anweisungen befolgt hat.
Die Kontrollen im Vergleich
| Kontrolle | Beantwortete Frage | Was sie nicht beantwortet |
|---|---|---|
| Eingabevalidierung | Ist dieser Wert für dieses Feld wohlgeformt? | Quellautorität, Anweisungsautorität oder Berechtigung |
| Inhaltsprüfung / Erkennung | Zeigt dieser Inhalt verdächtige anweisungsähnliche Muster? | Berechtigung; sie liefert ein probabilistisches Signal |
| Provenienz / Quellautorität | Woher stammt der Inhalt, was geschah mit ihm, und ist er für diesen Zweck maßgeblich? | Ob Offenlegung oder Aktion erlaubt ist |
| Anweisungshierarchie / Framing | Wie soll das Modell modellsichtbare Anweisungen gewichten? | Durchsetzung; sie prägt nur Modellverhalten |
| Autorisierung / Least Privilege | Darf dieser Principal diese Aktion auf dieser Ressource mit diesen Parametern ausführen? | Ob Inhalte wahr oder maßgeblich sind |
| Informationsflusskontrolle | Dürfen diese Daten von dieser Quelle oder Klassifizierung zu dieser Senke fließen? | Ob die Aktion selbst autorisiert ist |
| Ausgabevalidierung | Entspricht die vorgeschlagene Ausgabe dem Vertrag der Senke oder Anwendung? | Autorisierung oder senkenspezifische Kodierung |
| Kodierung / Escaping / Parametrisierung | Ist dieser Wert an genau dieser Senke sicher dargestellt? | Ob die Sprache vertrauenswürdig oder maßgeblich ist |
Synthetische Beispiele
Ticket T-100 besteht die Typ- und Längenprüfung. Neben der normalen Beschreibung enthält es einen sachfremden, anweisungsähnlichen Satz.
Das Ticket bleibt variabler Geschäftsinhalt ohne Anweisungsautorität; die Berechtigungen des Support-Assistenten decken die sachfremde Aktion nicht ab, also passiert nichts.
Eine wohlgeformte Nachricht wird angenommen. Die Inhaltsprüfung markiert einen Abschnitt als anweisungsähnlich.
Der Befund wird protokolliert. Hätte der Detektor ihn übersehen, würde die Autorisierung trotzdem jede Aktion außerhalb des Auftrags blockieren.
{ "action": "read", "resourceId": "case-B7" }Schemakonform, aber der Nutzer hat keinen Zugriff auf case-B7. Abgelehnt: Form ist keine Autorisierung.
Vom Modell erzeugter Freitext besteht das Ausgabeschema für ein Zusammenfassungsfeld.
Beim Rendern wird er getrennt davon HTML-escaped: Ausgabevalidierung ist keine senkenspezifische Kodierung.
Ein hochrelevantes, wohlgeformtes Dokument ist abrufbar, aber das Register bestimmt seine Quelle nicht als Autorität für diese Richtlinienfrage.
Es wird nicht als offizielle Richtlinie dargestellt: Gültigkeit und Relevanz sind keine Autorität.
Operation "export" und ein Limit von 50 bestehen Allowlist und Bereichsprüfung. Das Ziel example.test gehört zu keiner freigegebenen Zielklasse.
Die Zielrichtlinie lehnt den Fluss ab: mehrere unabhängige Prüfungen mit jeweils eigener Frage.
Eine neutrale Bitte steht einmal auf Englisch und einmal auf Deutsch mit gleicher Bedeutung da. Eine Wortliste für eine Sprache trifft nur eine Fassung.
Wortabgleich ist keine semantische Grenze; Entscheidungen gehören zu Kontrollen, die nicht vom Wortlaut abhängen.
Mehrschichtiges Kontrollmuster
Architektur-Checkliste
- Jeden strukturierten Wert validieren: IDs, Enums, Bereiche, Formate, Tool-Argumente
- Freitext als variablen Inhalt behandeln, egal wie gültig er ist
- Inhaltsprüfung und Erkennung als Signale nutzen, nicht als Berechtigung
- Identität, Mandant, ACLs und Provenienz außerhalb des Modelltexts halten
- Jede aufgelöste Aktion deterministisch autorisieren
- Informationsflusskontrolle auf Ziele und Senken anwenden
- Ausgaben gegen den Senkenvertrag validieren, dann an der Senke kodieren oder parametrisieren
- Erreichbare Daten und Fähigkeiten per Least Privilege begrenzen
Diese Checkliste ist Architekturempfehlung, keine aus einem Standard zitierte Anforderung.
Häufige Missverständnisse
Aussagen, die nicht stimmen
- "Wenn der Prompt die Validierung besteht, ist er sicher."
- "Stichwörter entfernen entfernt die Anweisung."
- "Der Detektor hat nichts gefunden, also ist die Aktion erlaubt."
- "Der Tool-Aufruf passt zum Schema, also ist er erlaubt."
- "Trennzeichen verhindern, dass abgerufener Text das Modell beeinflusst."
- "Escaping macht Ausgaben vertrauenswürdig."
- "Eingabevalidierung ist für KI-Anwendungen nutzlos."
Quellen und Praxis
Wie dieser Artikel Quellen nutzt
- OWASP
- LLM01:2026 Prompt Injection, Cheat Sheet Series - Kontext zu Eingabevalidierung, Injection-Prävention, Abfrageparametrisierung, XSS-Prävention
- NIST
- AI 100-2e2025 und Glossar - Terminologie zu indirekter Prompt Injection
- Microsoft
- Defend against indirect prompt injection attacks, Input, Context, and Retrieval Hygiene
Die OWASP Cheat Sheets werden nur für klassische Anwendungssicherheit und senkenspezifische Kontrollen zitiert, nicht als Leitfaden zu Prompt Injection. Kontrollvergleich und Checkliste sind Architekturempfehlungen.
Häufige Fragen
Sollten wir Eingaben weiterhin validieren?
Kann ein besserer Filter Prompt Injection lösen?
Gibt es ein Prepared Statement für Prompts?
Schaffen Trennzeichen oder Spotlighting eine Grenze?
Wo helfen Allowlists?
Ersetzt Escaping der Ausgabe die Autorisierung?
Was ist die wichtigste Erkenntnis?
Quellen
- LLM01:2026 Prompt InjectionOWASP GenAI Security Project · GuidanceGeprüft 2026-09-26
- Adversarial Machine Learning: A Taxonomy and Terminology of Attacks and Mitigations, NIST AI 100-2e2025NIST · Standard · 2025-03Geprüft 2026-09-26
- indirect prompt injectionNIST Glossary · Technical documentationGeprüft 2026-09-26
- Defend against indirect prompt injection attacksMicrosoft Learn · GuidanceGeprüft 2026-09-26
- Input, Context, and Retrieval HygieneMicrosoft Learn · GuidanceGeprüft 2026-09-26
- Injection Prevention Cheat SheetOWASP Cheat Sheet Series · GuidanceGeprüft 2026-09-26
- Query Parameterization Cheat SheetOWASP Cheat Sheet Series · GuidanceGeprüft 2026-09-26
- Cross Site Scripting Prevention Cheat SheetOWASP Cheat Sheet Series · GuidanceGeprüft 2026-09-26