- PR -

IEのセキュリティ制限なのか、はたまたHTTPの仕様なのか

1
投稿者投稿内容
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2004-04-14 12:42
ASP.NETでサーバ上のファイルをダウンロードする
システムを作成しました。

仮にこのページをdownload.aspxとします。
このとき、
レスポンスのヘッダーに
Content-Type は Application/download ,
Content-Dispositionにattachment;filename=ファイル名
と付して、問題なく動作しています。

ところが、filenameに長い文字列(概ね日本語全角相当で30文字前後が限界)を
与えると、filename=が全く効果がなくなり、
ダウンロードファイル名のデフォルトが、download.aspxになってしまいます。

仮に、元のファイルがWORDファイルだとすると、
保存ダイアログで my.docなどと打ち込んで保存し、開くと中身は問題ありません。
つまり、送られてきているファイル実体には何の問題もありません。
(もっとも、この場合は、ダウンロードする本人が元のファイルの拡張子を
 事前に知っていなければならないという限界があります。)

このfilenameの長さの制限がどこに起因しているのか、
ご存知のかた、教えてください。
(1)HTTPのプロトコル仕様による制約なのか?と思って、RFCの和訳を調べましたが、
  見た限りでは、ヘッダー部分のバイト数制限を見つけることができませんでした。
(2)クライアントのIE(Ver6.0)において、何らかのヘッダーのオーバーフロースタック
  に起因するセキュリティホールが昔存在したため、現在は制限されているのか?
  とも思いましたが、ネットで検索した限りでは見当たりませんでした。
(3)MMCにおけるIIS設定では、ヘッダーサイズの制限を掛ける(講じる)ような
  設定を行う場所は見当たりませんでした。

1

スキルアップ/キャリアアップ(JOB@IT)