HTTP応答ヘッダーでのcontent-dispositionの使用
-
06-07-2019 - |
質問
次のasp.netコードは、データベースからファイルを提供するときに非常に役立つことがわかりました。
Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);
これにより、ユーザーはファイルをコンピューターに保存し、ブラウザーがファイルを使用する代わりに、その使用方法を決定できます。
content-disposition応答ヘッダーで他にできることは何ですか?
解決
RFC 6266 は、以下で参照されるRFCに優先することに注意してください。 セクション7 では、関連するセキュリティ上の懸念の一部を説明しています。
content-dispositionヘッダーの権限は、 RFC 1806 および RFC2183。人々は content-dispositionハッキング。 content-dispositionヘッダーはHTTP 1.1標準の一部ではないことに注意することが重要です。
HTTP 1.1標準( RFC 2616 )では、コンテンツの処分:
15.5コンテンツ処理の問題
RFC 1806 [35]、そこからしばしば Content-Disposition
を実装しました (セクション19.5.1を参照)HTTPのヘッダーは 派生、非常に多くの
深刻なセキュリティの考慮事項。 Content-Dispositionは
の一部ではありません HTTP標準ですが、 広く実装されており、
その使用とリスクを文書化する 実装者。 RFC 2183 [49]
を参照 (RFC 1806を更新)詳細については。
他のヒント
まあ、Content-DispositionヘッダーはWebではなく電子メール用に作成されたようです。 (関連するRFCへのリンク。)
Webブラウザが応答する可能性があると推測しています
Response.AppendHeader("content-disposition", "inline; filename=" + fileName);
保存するが、よくわからない。
RFC 6266(ハイパーテキスト転送プロトコル(HTTP)でのContent-Dispositionヘッダーフィールドの使用)を参照 http://tools.ietf.org/html/rfc6266
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());
MicrosoftサポートセクションのこのKB記事は、ここでの議論に関連している既知のMIMEタイプのファイルダウンロードダイアログボックスを表示する方法