2016-04-01 6 views
-1

ユーザが提供した画像が実際の画像であるかどうかを確認する正しい方法が何であるか疑問に思っています。画像が実際に画像であるかどうかを確認する正しい方法

$x = pathinfo('upload.png', PATHINFO_EXTENSION);

結果:png

$x = new finfo(FILEINFO_MIME_TYPE); 
$x->file('upload.png'); 

結果:

私は次の2つの例を見image/png

+0

サイズを変更するか、[getimagesize](https://secure.php.net/manual/en/function.getimagesize.php)を使用してみてください – jDo

+0

これを見てくださいhttp://stackoverflow.com/questions/15595592/php -validating-the-file-upload –

+0

'getimagesize' .... – zerkms

答えて

0

後者を、拡張子が示すFInfoを偽造することができ、変更することができます同様に、それはより困難です。その他の確認方法については、the docsを参照してください。 a commenter warnsとして、GIFとして識別されるファイルに有害な実行可能コードをラップするのは難しくありません。しかし、ここではイメージチェックを使用しています:

if (!$img = @imagecreatefromgif($uploadedfilename)) { 
    trigger_error('Not a GIF image!',E_USER_WARNING); 
    // do necessary stuff 
} 

幸運!

関連する問題