Dateizugriff mit JavaScript
12.06.2023, 00:00 Uhr
Surfen auf der Festplatte
Lokal auf Dateien zugreifen – JavaScript macht’s möglich.
Lokale Dateien und Browseranwendungen – das klingt nach einem Widerspruch. Und in der Tat rückt diese Kombination meist nur dann ins Zentrum der Aufmerksamkeit, wenn es zu einer entsprechenden Sicherheitslücke kommt. 2019 etwa hat der Sicherheitsforscher John Page eine Schwachstelle im Internet Explorer 11 gefunden [1]. Durch entsprechend präparierte Dateien im MHT-Format (eine Art Archivdatei für Webanwendungen inklusive Markup und anderen Daten wie etwa Grafiken) war es dem Browser möglich, schadhaften Code auszuführen. Prinzipiell neu war dieser Angriffsweg dabei nicht. Bereits 2000 fand Georgi Gunninski eine andere IE-Lücke, damals in Version 5.5 [2]. Sie erlaubte die Ausführung von beliebigen Programmen. Gut möglich, dass das nicht einmal die erste Schwachstelle dieser Art war und es noch ältere Vorgänger gibt.
Für ein noch größeres Unbehagen als diese Sicherheitslücken sorgt wahrscheinlich die Vorstellung, eine Webanwendung könnte auf lokale Dateien zugreifen. Einmal falsch mit der Maus geklickt, und schon saugt eine Website persönliche Daten ab. So schlimm ist es freilich nicht. Ja, Webanwendungen können via JavaScript mit Dateien auf dem lokalen System arbeiten. Aber nein, das geht nicht ohne entsprechende Zustimmung oder Interaktion. Letzteres hatten wir vor einiger Zeit in der dotnetpro schon einmal thematisiert, als es um Drag-and-drop von (unter anderem) Dateien ging [3]. Aufgrund der Rückmeldungen zum damaligen Artikel erschien es angebracht, die Möglichkeiten des Dateizugriffs aus JavaScript heraus etwas methodischer vorzustellen. Dieses Mal geht es um einen Teilaspekt, und zwar um den Zugriff auf Dateien (und deren Inhalte) über das File API.
Jetzt 1 Monat kostenlos testen!
Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
- + Digitales Kundenkonto,
- + Zugriff auf das digitale Heft,
- + Zugang zum digitalen Heftarchiv,
- + Auf Wunsch: Weekly Newsletter,
- + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar