Frage

ich habe folgenden asp.net Code als sehr nützlich erwiesen, wenn Dateien aus einer Datenbank dienen:

Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);

Auf diese Weise können die Benutzer die Datei auf ihrem Computer speichern und dann entscheiden, wie es zu benutzen, statt der Browser versucht, die Datei zu verwenden.

Welche anderen Dinge können mit dem Content-Disposition-Antwort-Header zu tun?

War es hilfreich?

Lösung

Beachten Sie, dass RFC 6266 RFCs unten verwiesen wird ersetzt. Abschnitt 7 beschreibt einige der damit verbundenen Sicherheitsprobleme.

Die Behörde über den Content-Disposition-Header ist RFC 1806 und RFC 2183. Die Menschen haben auch ein href erdacht <= "http://www.gnucitizen.org/blog / Content-Disposition-Hacking /“rel = "noreferrer"> Content-Disposition Hacking. Es ist wichtig, dass der Content-Disposition-Header ist nicht Teil des HTTP-1.1-Standard.

Der HTTP 1.1 Standard ( RFC 2616 ) erwähnt auch die möglichen Sicherheitsnebenwirkungen Inhalt Disposition:

  

15,5 Content-Disposition Veröffentlichungen

     

RFC 1806 [35], von denen die oft   implementiert Content-Disposition
  Header in HTTP (Abschnitt 19.5.1 sehen) ist   abgeleitet ist, hat eine Reihe von sehr
  ernsthafte Sicherheitsüberlegungen.   Content-Disposition ist nicht Teil der Häuser   der HTTP-Standard, aber da es sich um   weitgehend umgesetzt sind wir
  dokumentieren ihre Nutzung und die Risiken für   Implementierer. Siehe RFC 2183 [49]
  (Welche Updates RFC 1806) für Details.

Andere Tipps

Nun, scheint es, dass die Content-Disposition-Header ursprünglich für E-Mail erstellt wurden, nicht im Web. ( Link zu relevanten RFC .)

Ich vermute, dass Web-Browser reagieren kann

Response.AppendHeader("content-disposition", "inline; filename=" + fileName);

Beim Speichern, aber ich bin nicht sicher.

RFC Siehe 6266 (Die Verwendung des Content-Disposition-Header-Feldes in dem Hypertext Transfer Protocol (HTTP)) http://tools.ietf.org/html/rfc6266

Für asp.net Anwender bietet das .NET Framework eine Klasse einen Content-Disposition-Header zu erstellen: System.Net.Mime.ContentDisposition

Grund Nutzung:

var cd = new System.Net.Mime.ContentDisposition();
cd.FileName = "myFile.txt";
cd.ModificationDate = DateTime.UtcNow;
cd.Size = 100;
Response.AppendHeader("content-disposition", cd.ToString());

Dieser Header wird in RFC 2183 rel="nofollow, so dass der beste Ort wäre, zu lesen beginnen.

Zulässige Werte sind diejenigen mit der Assigned Numbers Authority (IANA) Internet registriert; ihre Registrierung von Werten wie die definitive Quelle gesehen werden soll.

Das Denken dieses KB-Artikel auf dem Microsoft Support-Bereich wird auf die Diskussion im Zusammenhang hier Wie ein Dialogfeld Dateidownload für einen bekannten MIME-Typen erhöhen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top