130

データベースからファイルを提供する場合、次の asp.net コードが非常に役立つことがわかりました。

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

これにより、ブラウザがファイルを使用しようとする代わりに、ユーザーはファイルを自分のコンピューターに保存してから、その使用方法を決定できます。

content-disposition 応答ヘッダーで他に何ができますか?

4

5 に答える 5

87

RFC 6266は、以下で参照される RFC に取って代わることに注意してください。セクション 7では、関連するセキュリティ上の問題のいくつかを概説します。

content-disposition ヘッダーに関する権限は、RFC 1806およびRFC 2183 です。人々はcontent-disposition ハッキングも考案しました。content-disposition ヘッダーは HTTP 1.1 標準の一部ではないことに注意してください。

HTTP 1.1 標準 ( RFC 2616 ) では、コンテンツの配置によって発生する可能性のあるセキュリティの副作用についても言及されています。

15.5 コンテンツ処理の問題


HTTP で頻繁に実装される Content-Disposition (セクション 19.5.1 を参照) ヘッダーが派生するRFC 1806 [35] には、多くの非常に
深刻なセキュリティ上の考慮事項があります。Content-Disposition は
HTTP 標準の一部ではありませんが、広く実装されている
ため、実装者向けにその使用とリスクを文書化しています。詳細については、RFC 2183 [49]
(RFC 1806 を更新) を参照してください。

于 2009-06-18T12:49:15.733 に答える
26

Content-Disposition ヘッダーは、もともと Web 用ではなく、電子メール用に作成されたようです。(関連する RFC へのリンク。)

Webブラウザが応答する可能性があると推測しています

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

保存するときですが、よくわかりません。

于 2009-06-18T12:45:16.397 に答える
6

RFC 6266(ハイパーテキスト転送プロトコル(HTTP)でのContent-Dispositionヘッダーフィールドの使用)https://www.rfc-editor.org/rfc/rfc6266を参照してください。

于 2013-03-01T05:14:07.110 に答える
6

asp.net ユーザーの場合、.NET フレームワークはコンテンツ ディスポジション ヘッダーを作成するためのクラスを提供します: System.Net.Mime.ContentDisposition

基本的な使い方:

var cd = new System.Net.Mime.ContentDisposition();
cd.FileName = "myFile.txt";
cd.ModificationDate = DateTime.UtcNow;
cd.Size = 100;
Response.AppendHeader("content-disposition", cd.ToString());
于 2014-03-06T10:10:23.527 に答える
2

このヘッダーはRFC 2183で定義されているため、ここから読み始めるのが最適です。

許可される値は、Internet Assigned Numbers Authority (IANA) に登録されている値です。それらの値のレジストリは、決定的な情報源と見なされるべきです。

于 2009-06-18T12:50:22.050 に答える