Verhindern Sie, dass Internet Explorer Downloads umbenennt

Verhindern Sie, dass Internet Explorer Downloads umbenennt

Ich habe einWebsitedas erklärt, wie ich meine Visual Studio-Einstellungen einrichte. Dazu gehören Downloads für .vsix-Erweiterungen (der "Download" unter "Erweiterungen installieren", "Indent Guides") oder .config-Dateien (weiter unten als "CodeMaid.config").

Internet Explorer und Edge sind die einzigen beiden Browser, die die Erweiterungen dieser Download-Dateien absichtlich so verändern, dass sie nach dem Download nicht mehr funktionieren. Firefox tut einfach, was der Webserver ihm sagt und speichert die heruntergeladene Datei unter dem angegebenen Namen.

Den .vsix-Fall könnte ich handhaben, indem ich dafür den MIME-Typ "application/vsix" bereitstelle. Andernfalls hätte der IE solche Dateien als .zip interpretiert (was sie technisch gesehen auch sind). Sie dürfen ohnehin nicht umbenannt werden, da eine .zip-Datei völlig anders geöffnet wird als eine .vsix-Datei.

Die .config-Datei hat jedoch keinen speziellen MIME-Typ. Es ist eigentlich nur eine XML-Datei und der IE benennt sie in .xml um. Leider ist sie für die Verwendung in einem Programm gedacht, das .config-Dateien benötigt.

Warum macht der Internet Explorer alle möglichen Dinge kaputt? Wie kann man ihn davon abhalten, solchen Unsinn zu machen? Ich habe etwas über einen HTTP-Header „X-Content-Type-Options: nosniff“ für IE 8 gefunden, aber das ändert heute nichts, also nehme ich an, dass es falsch oder auch kaputt ist. Oder vielleicht brauche ich jetzt einfach drei weitere Header?

Antwort1

Verwenden Sie die folgenden HTTP-Header:

  • X-Download-Optionen: noopen
  • Inhaltsdisposition: Anhang; Dateiname=untrustedfile.html

MIME-Handling: Speichern erzwingen

Und schließlich haben wir für Webanwendungen, die nicht vertrauenswürdige HTML-Dateien bereitstellen müssen, einen Mechanismus eingeführt, der verhindert, dass nicht vertrauenswürdige Inhalte die Sicherheit Ihrer Site gefährden. Wenn der neue Header „X-Download-Options“ mit dem Wert „noopen“ vorhanden ist, kann der Benutzer einen Dateidownload nicht direkt öffnen. Stattdessen muss er die Datei zuerst lokal speichern. Wenn die lokal gespeicherte Datei später geöffnet wird, wird sie nicht mehr im Sicherheitskontext Ihrer Site ausgeführt, was dazu beiträgt, Skript-Injektion zu verhindern.

Verweise

verwandte Informationen