top of page

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

  • Autorenbild: kim
    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'!A0

Solche 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.


ree
ree

📌 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

    ree

✂️ 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.

ree

📥 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.

ree

🧪 4. Teste die Sicherheitslogik

Verwende absichtlich gefährliche Formeln, um dein Setup zu testen:

Eingabe

Erwartetes Ergebnis

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:

ree

🧷 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:

ree


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

ree

🔄 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.

ree

🧠 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


bottom of page