Format Atlas

Ratgeber

CSV-Formelinjektion und sichere Exporte

CSV-Anführungszeichen erhalten Feldgrenzen, verhindern aber nicht, dass ein Tabellenprogramm eine Zelle als Formel interpretiert. Wählen Sie eine Methode für die Zielanwendung und testen Sie sie dort.

Welches Format sollten Sie wählen?

Wählen Sie nach der Rolle der Datei in Ihrem Arbeitsablauf.

  • CSV für Systemverarbeitung → Werte erhalten und die Spezifikation des empfangenden Parsers beachten
  • CSV zum Öffnen in einem Tabellenprogramm → Ausgabe wählen, die nicht vertrauenswürdige Werte als Text behandelt, und dort testen
  • Reichen Anführungszeichen aus? → CSV-Syntax schützen und Formelausführung verhindern sind zwei verschiedene Aufgaben
  • Welche Bereinigung ist richtig? → Tabellenprogramme unterscheiden sich; keine universelle Umwandlung voraussetzen

Eine CSV-Zelle kann als Formel interpretiert werden

Enthält ein CSV-Export Werte aus einem Webformular oder einer Datenbank, können Excel, LibreOffice Calc oder andere Tabellenprogramme Zellen, die etwa mit `=` beginnen, als Formel interpretieren. Kann ein Angreifer die Eingabe steuern, kann dies über das Programmverhalten oder Nutzeraktionen Daten offenlegen oder weitere Schäden verursachen. Die Auswirkungen hängen vom Programm und seinen Einstellungen ab.

CSV-Anführungszeichen verhindern keine Formeln

Ein Feld in doppelte Anführungszeichen zu setzen und enthaltene Anführungszeichen zu maskieren, ist Syntaxverarbeitung: Kommas und Zeilenumbrüche bleiben im vorgesehenen Feld. Ob das Tabellenprogramm die Zelle als Formel behandelt, ist ein separater Schritt. Korrektes CSV-Escaping allein belegt daher nicht, dass Formelinjektion verhindert wurde.

Textausgabe passend zur Zielanwendung wählen

Unterscheiden Sie CSV für automatische Verarbeitung von Dateien, die Personen in einem Tabellenprogramm öffnen. Für Letztere kann eine Bibliothek oder ein Format sinnvoll sein, mit dem sich ein Wert ausdrücklich als Text speichern lässt. Ist CSV erforderlich, testen Sie Werte mit `=`, `+`, `-` oder `@` am Anfang in der Zielanwendung und wählen Sie eine passende Maßnahme. Ein vorangestellter Tabulator oder Apostroph kann Kompatibilität und Wert verändern und ist keine universelle Lösung.

Trennzeichen und Zellgrenzen berücksichtigen

Kommas, Semikolons, Anführungszeichen und Zeilenumbrüche in nicht vertrauenswürdigen Werten können bei fehlerhafter Ausgabe unerwartete Zellen erzeugen. Eine neue Zelle kann dann mit einem Formelzeichen beginnen. Verwenden Sie eine Standard-CSV-Bibliothek und behandeln Sie die Formelinterpretation für die Zielanwendung gesondert. Verlassen Sie sich nicht auf Zeichenkettenverkettung oder die Prüfung nur des ersten Zeichens.

Öffnen, speichern und erneut öffnen testen

Testen Sie Grenzfälle wie führende Leerzeichen, Steuerzeichen, Trennzeichen und Anführungszeichen in den unterstützten Programmen, auch nach erneutem Öffnen. OWASP weist darauf hin, dass Excel beim Speichern und Öffnen einer CSV Anführungszeichen oder Maskierungen entfernen und einen neutralisierten Wert wieder als Formel aktivieren kann. Bewahren Sie Quelldaten für Systeme getrennt von umgewandelten Tabellen-Ausgaben auf.

Geeignete Formate

CSV

Geeignet für: Einfache Tabellendaten austauschen, wenn der Empfänger Zellinhalte als Daten behandelt

Weniger geeignet für: Nicht vertrauenswürdige Werte ohne app-spezifische Maßnahmen und Tests für Tabellenprogramme exportieren

Vor dem Export prüfen

  • CSV-Anführungszeichen und Escaping verhindern Formelausführung nicht zuverlässig.
  • Tabellenprogramme unterscheiden sich bei Erkennung, Warnungen und erneutem Speichern.
  • Testen Sie CSV mit nicht vertrauenswürdigen Eingaben vor der Verteilung in der Zielanwendung, auch nach erneutem Öffnen.

Ähnliche Vergleiche

Ratgeber

Quellen und Spezifikationen