ホームページ >バックエンド開発 >PHPチュートリアル >PHP でアップロードされた画像ファイルの種類を安全に検証するにはどうすればよいですか?
画像ファイル タイプを検証する一般的なアプローチを使用しているにもかかわらず、一部のユーザーはアップロード プロセス中にエラーに遭遇しました。
提供されるコード スニペットは、ユーザーが提供する $_FILES['fupload']['type'] プロパティを利用します。悪意のあるユーザーによる操作の可能性があります。この脆弱性に対処するには、mime_content_type() を使用すると精度が向上することが提案されています。
ただし、推奨される解決策は、ユーザー定義の値に完全に依存しないことです。代わりに、独自の型検証を実行することをお勧めします。
画像の場合、exif_imagetype() 関数は、ファイルの実際の形式を判断するための信頼できる方法を提供します。
$allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF); $detectedType = exif_imagetype($_FILES['fupload']['tmp_name']); $error = !in_array($detectedType, $allowedTypes);
このアプローチでは、画像のバイナリ署名を直接取得し、ユーザーがファイル タイプを操作する可能性を排除します。
あるいは、より高度なファイル タイプ検証を行うには、サーバーが finfo 関数をサポートしている場合は、finfo 関数の使用を検討してください。
以上がPHP でアップロードされた画像ファイルの種類を安全に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。