厳密なファイルタイプ検証:finfo
クライアント側のファイル拡張機能のみに依存することを避けます。 代わりに、イメージファイルのgetimagesize()
クラス(推奨)または
<code class="php">$finfo = new finfo(FILEINFO_MIME_TYPE); $mime_type = $finfo->file($_FILES['file']['tmp_name']); if ($mime_type != 'image/jpeg' && $mime_type != 'image/png') { // Handle invalid file type }</code>
ini_set()
ファイルサイズの制限:upload_max_filesize
ファイルサイズにクライアント側とサーバー側の両方の制限を設定します。 クライアント側の制限は、ユーザーエクスペリエンスの改善を提供し、最終的に拒否される大きなアップロードを防ぎます。 サーバー側の制限は、セキュリティとリソース管理に不可欠です。 post_max_size
およびphp.ini
およびini_get()
ディレクティブをfinfo
またはgetimagesize()
でサーバー側の検証を使用します。 realpath()
$_FILES['file']['size']
:この変数には、アップロードされたファイルのサイズがバイトに含まれています。この値を定義された制限と比較してください。ini_set()
ini_get()
/:upload_max_filesize
これらの関数を使用して、post_max_size
およびphp.ini
ディレクティブをの両方の両方の組み合わせ:
<code class="php">$finfo = new finfo(FILEINFO_MIME_TYPE); $mime_type = $finfo->file($_FILES['file']['tmp_name']); if ($mime_type != 'image/jpeg' && $mime_type != 'image/png') { // Handle invalid file type }</code>セキュリティと効率を確保するためにアップロードされたファイルをPHPで取り扱うためのベストプラクティスは何ですか?メンテナビリティ:
以上がPHPにSecureファイルアップロードを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。