2009-02-26 12 views

答えて

0

ファイルが特定の拡張タイプであることを確認する一般的な方法はありません。

フォーマットのホワイトリスト(png、jpg、zipなど)を作成し、ファイルヘッダーを調べて、期待されるフォーマットに準拠しているかどうかを判断できます。

ファイルの内容そのものが読み込まれたときにのみ明らかになるように形式が誤っている可能性があるにもかかわらず、だまされません。

1

本当にファイルの種類によって異なります。多くのファイルタイプでは、ファイルのヘッダーを調べることができます。ファイルのヘッダーは、通常、ファイル内の最初の0文字より前です。以前は画像の種類を調べるコードを使用していましたので、どこかで見つけることができるかもしれません。

しかし、XMLのようなこの形式のヘッダーを持たないファイルタイプがあります(これは安い例ですが、私は考えるのが簡単でした - >)。私は、他のバイナリファイルタイプと同様に、すべてのグラフィックスタイプにヘッダーがあると信じています。

Andrewが述べたように、ヘッダーは100%ではありません。しかし、ファイルが "不正な形式"であれば、ハッキング攻撃になることはまずありません。破損したファイルのアップロードまたはアップロードが破損している可能性が高くなります。