0

ファイルをアップロードおよびダウンロードできるサイトへの攻撃について読んでいました。いくつかの攻撃は、実際には html ファイルである jpg をアップロードすることと、ユーザーが html を保存してダウンロードできるようにする (または、名前を付けて保存機能を使用せずにブラウザーで表示する) ことを許可するかどうかについてのコメントに関するものでした。

実行しないと言うために使用できるフラグの種類はありますか? 他のユーザーがアップロードした画像またはビデオ ファイルをユーザーに表示してもらいます。ユーザーの html を表示したいが、ユーザーにダウンロードを強制したくない場合 (content-disposition 添付ファイル)。

ここにユーザーデータがあると言える方法はありますか。画像である可能性があるため、img src が機能するようにする必要があります。それはhtmlである可能性があるので、ユーザーにそれを見てもらいたいのですが、Cookie/localstorage/call ajax request/etcの読み取り/書き込みを許可しないでください?

-編集- 考えてみてください。すべてのユーザー データは、静的ファイル用の独自の Cookie を使用しないサブドメインでホストされています。それは私が言及した多くの問題を取り除くでしょうが、他に対処するために何が残っていますか? また、私の MIME 応答は、Web サーバーが何をするか (nginx atm) に完全に依存していると思います。

-edit2- nginx の設定を調整してapplication/unknownContent-Type を追加しました。それはまさに私が望むことをするようです。不明なファイルに octet-stream を使用するという提案を見ましたが、ブラウザで表示できる jpg であっても、ブラウザ (少なくとも Firefox) がダウンロードしようとします。

4

1 に答える 1

1

Content-Typeそれはすべて、HTTP 応答の に依存します。

ブラウザーはContent-Type、HTTP 応答で返されたデータを処理します。

たとえば、ユーザーがアップロード フィールドに HTML ファイルをアップロードして、おそらく写真をアップロードするとします。Web サーバーがContent-Typeas image/jpeg(またはimage/pnget al) を提供する限り、ブラウザはそれを画像として処理する必要があります。この場合、無効な画像です。画像には、通常のバイナリではなく、奇妙な HTML が含まれています。

いずれにせよ、不安を感じている場合は、アップロードの検証中にいつでもファイル データを覗くことができます。

于 2012-07-09T01:14:07.180 に答える