🛡️ Sicher von Forms nach Excel: Schutz vor Formula Injection mit Power Automate
- kim

- 15. Juli
- 4 Min. Lesezeit
Aktualisiert: 16. Juli
📋 Szenario
Du nutzt Microsoft Forms mit zwei Feldern (z. B. Vorname und Nachname) auf deiner Website. Das Formular ist über einen öffentlichen Link weltweit erreichbar – klassisch also z. B. für ein Kontaktformular, eine Newsletter-Anmeldung oder eine schnelle Rückmeldung.
Sobald das Formular abgeschickt wird, sollen die Daten automatisch per Power Automate in eine Excel-Tabelle geschrieben werden, die intern gespeichert ist.
Das klingt erstmal nach einem praktischen Low-Code-Anwendungsfall – birgt aber ein unerwartetes Sicherheitsrisiko.
🎁 Bonus
Ganz unten im Artikel findet ihr noch einen kreativen Alternativweg, wie mithilfe von AI Prompts die Sicherheit erhöht werden kann. Ich bin gespannt auf Eure Meinung dazu!
🧠 Warum das ein Problem ist
In Microsoft Excel kann man nicht nur Text, sondern auch ausführbare Formeln in Zellen schreiben. Das ist grundsätzlich sinnvoll – wird aber zur Gefahr, wenn die Formeln von außen eingeschleust werden.
Beispiel:
=HYPERLINK("http://evil.com", "Click here")Diese Zeichenkette sieht aus wie ein ganz normaler Textwert im Formular. Wenn sie jedoch ungefiltert in eine Excel-Zelle geschrieben wird, wandelt Excel sie in einen klickbaren Link um – obwohl der Nutzer nie Zugriff auf die Datei hatte. Das ist ein klassisches Beispiel für eine sogenannte Formula Injection.
Noch schlimmer wird es mit ausgeklügelteren Payloads wie:
=cmd|' /C calc'!A0Solche Inhalte können je nach Excel-Konfiguration Makros oder Befehle auslösen – in modernen Excel-Versionen meist geblockt, aber nicht immer zuverlässig.
Kurz: Wer Daten über Microsoft Forms empfängt und direkt in Excel speichert, sollte aufpassen.


📌 Ziel
In diesem Beitrag zeige ich dir, wie du mit wenigen Mitteln dafür sorgst, dass Eingaben aus einem Microsoft Form nicht als Formel in Excel interpretiert werden, sondern als reiner Text gespeichert werden – mit Power Automate und einem simplen Sicherheitsfilter.
🚨 Gefährliche Zeichen & Präfixe
Diese Zeichen und Kombinationen solltest du immer aus Benutzereingaben entfernen, bevor du sie in Excel schreibst:
Zeichen | Begründung |
= | Startet eine Formel |
+, -, @ | Können ebenfalls Formeln starten |
*, /, \ | Rechenoperatoren |
', ` | Escape-Zeichen |
;, ` | , &, :` |
!, <, >, ", ? | URL- oder Funktionsbestandteile |
✅ Schritt-für-Schritt-Anleitung
🔧 1. Trigger: Microsoft Forms
Trigger: When a new response is submitted
Aktion: Get response details

✂️ 2. Eingaben bereinigen
Füge im Flow nach dem Abrufen der Antworten einen Compose- oder Variablen-Schritt ein, um gefährliche Zeichen aus den Eingaben zu entfernen:
Beispiel: Bereinigung des Vornamens
@{replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
outputs('Get_response_details')?['body/r838c896106aa413f960ea18c092012cd'],
'=', ''), '+', ''), '-', ''), '@', ''), '*', ''), '/', ''), '\\', ''), '''', ''), '`', ''), ';', ''), '|', ''), '&', ''), ':', ''), '!', ''), '<', ''), '>', ''), '"', ''), '?', '')}
Und für den Nachnamen entsprechend:
@{replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
outputs('Get_response_details')?['body/r0c6860e6376b4f58aa0a21b42a075c3a'],
'=', ''), '+', ''), '-', ''), '@', ''), '*', ''), '/', ''), '\\', ''), '''', ''), '`', ''), ';', ''), '|', ''), '&', ''), ':', ''), '!', ''), '<', ''), '>', ''), '"', ''), '?', '')}
🧠 Natürlich musst du die Feld-IDs (body/r…) durch die IDs aus deinem eigenen Formular ersetzen.

📥 3. Bereinigte Daten in Excel schreiben
Statt der rohen Eingaben aus Microsoft Forms verwendest du nun nur die bereinigten Compose-Ergebnisse oder Variablen. Dadurch werden gefährliche Zeichen nicht mehr in die Excel-Tabelle übernommen.

🧪 4. Teste die Sicherheitslogik
Verwende absichtlich gefährliche Formeln, um dein Setup zu testen:
Eingabe | Erwartetes Ergebnis |
=HYPERLINK("https://example.com/phishing-test","Click here") | Kein klickbarer Link in Excel |
`=cmd | ' /C calc'!A0` |
+SUM(A1:A10) | Keine Berechnung, nur Text |
@SUM(B1:B5) | Kein Excel-Array-Trigger |
Ergebnis mit Sicherheitsfilter:

🧷 Best Practices
Thema | Empfehlung |
Eingaben bereinigen | Immer vor dem Schreiben in Excel |
Excel schützen | Makros und externe Inhalte deaktivieren |
Daten als Text behandeln | Formelinterpretation durch Excel verhindern |
Flow regelmäßig testen | Besonders bei öffentlichen Forms |
Logging | Optional: Originalwerte separat sichern (z. B. SharePoint-Liste) |
🤖 Bonus: Validierung mit Power Platform AI Prompts
Während das manuelle Entfernen gefährlicher Zeichen per replace()-Kette zuverlässig funktioniert, gibt es inzwischen eine clevere Alternative mit KI-Unterstützung: Die Power Platform erlaubt es, AI Prompts direkt im Flow auszuführen, um Eingaben zu prüfen, zu bereinigen und sogar im JSON-Format zurückzugeben – ganz ohne statischen Code.
✨ Warum das spannend ist:
Du musst nicht jede Zeichenkette einzeln per Hand bereinigen.
Du kannst das komplette Datenobjekt (z. B. das gesamte Form-Response) an den Prompt übergeben.
Der Prompt kann flexibel erweitert werden und nutzt AI-Intelligenz zur Mustererkennung (z. B. verdächtige Formeln, URLs, Sonderzeichen).
🔧 So funktioniert’s im Flow
1️⃣ Schritt: "Run a Prompt" (AI Builder)
Statt replace()-Kommandos nutzt du einen AI-Prompt mit folgendem Inhalt:

✅ Der Prompt wird über die AI Builder-Aktion Run a prompt aufgerufen, wobei das gesamte Formularobjekt als Input verwendet wird.

🔄 Output: Eine bereinigte JSON-Version der Eingaben, z. B.:
{
"Vorname": "Max",
"Nachname": "Mustermann"
}
2️⃣ Schritt: Bereinigte Werte in Excel schreiben
Verwende nun nicht mehr die Originalwerte aus dem Formular, sondern die bereinigten Werte aus dem JSON-Response der KI.

🧠 Vorteile der AI-Prompt-Variante
Vorteil | Beschreibung |
🔁 Wiederverwendbar | Prompt kann leicht erweitert oder angepasst werden |
🧠 Intelligenter | Erkennt Muster jenseits einfacher Zeichenvergleiche |
📉 Weniger Code | Keine verschachtelten replace()-Ketten |
🧰 Mehr Kontext | Kann mit vollständigen Objekten arbeiten, nicht nur Einzelwerten |
⚠️ Grenzen beachten
Kostenpflichtig: AI Prompts benötigen AI Builder Credits oder entsprechende Lizenz.
Latenz: Die Ausführung kann minimal länger dauern als einfache String-Funktionen.
Blackbox: Die Entscheidung, was „schädlich“ ist, liegt in der Hand des Prompts – du solltest den Output immer validieren.
🧩 Fazit & Feedback-Frage
Ob per replace() oder mit KI-Unterstützung – beides sind valide Wege, um deine Excel-Daten gegen schädliche Formeln zu schützen. Der AI-Ansatz ist besonders dann spannend, wenn du mehrere Felder gleichzeitig prüfen, den Flow schlanker halten oder sogar eine semantische Bewertung durchführen willst.
💬 Wie löst ihr das?
Mich interessiert:
Nutzt ihr AI Prompts bereits im Alltag – vielleicht sogar zur Eingabeprüfung?
Habt ihr ganz andere Wege gefunden, um Excel-Formularspeicherungen sicher zu gestalten?
👉 Ich freue mich auf eure Gedanken per LinkedIn oder als Kommentar.



Kommentare