2011-09-16 8 views

答えて

1

サポートされているファイル形式であるかどうかを調べるだけで十分です。実際にはファイルのヘッダーバイトを解析するため、非常に信頼性があります。

これは、PHPに組み込まれているのが最もよい方法です。 ImageMagick'sidentifyコマンドのような

高度なツールは、本質的に同じことを - あなたは(自分のリストはIMAGETYPE_*定数で、hereある)getimagesize()でサポートされているものよりも多くのファイルフォーマットをサポートする必要がある場合にのみ、それらを考慮します。

2

getimagesize()は、ファイルがイメージであることを確信しています。はい。

画像に有効なヘッダーが含まれているかどうかが判断されます。

実際の画像データに破損があるかどうかは判断できません。実際の画像データには、画像が乱雑に表示されたり、画像の読み込み中にエラーが発生することがあります。

ファイルが有効な画像ファイルである可能性がありますが、メタデータ、画像データ内、または画像データの最後の後に他のデータを隠すことも可能です。そのため、getimagesize()は有効なイメージを持っていると言えるかもしれませんが、必ずしもそのファイルが別のタイプとしても有効ではありません。 JARファイルとZIPファイルはファイルの最後から読み込まれるため、ファイルが有効な画像と有効なJAR/ZIPファイルの両方になる可能性があり、JARファイルはブラウザで実行可能です(GIFAR exploitの基礎)。

+0

GIFARエクスプロイトのヘッドアップのおかげで、そのことについて知りませんでした! – ChrisR

関連する問題