ハッカーは単純な Firefox アドオンを使用して、アップロードするファイルの MIME タイプを変更し、ファイル タイプ チェッカーをバイパスできます。
ハッカーは、GIMP のようなプログラムを使用して、画像、音声、またはその他のファイルのバイナリ データ内に php スクリプトを埋め込むことができます。
どうすればこれを確認し、防ぐことができますか?
mime_content_type () を使用して、クライアント ブラウザから送信される値ではなく、ファイルの実際の MIME タイプを取得できます。
次に、PHP でウイルス スキャンを実行できるphp-ClamAVなどのライブラリを使用できます。
予想されるもの以外のファイル拡張子は破棄できます (たとえば、画像が予想される場合は .png、.jpg など)。画像の特定のケースでは、画像を変更して無効にすることもできます (たとえば、サイズを少し変更する、圧縮率を変更する、データを変更して実行可能ファイルを無効にするなど)。
最後にもちろん、ファイルに実行権を与えないでください。しかし、コメントで言われていることとは反対に、これはあなたを本当に保護するものではありません. ハッカーが、たとえばインジェクションによって php ファイルを実行する方法を見つけた場合、ファイルを chmod して正しく実行する (さらには実行する) ことができます。
ファイルの名前を常に予測不可能な方法で変更することもお勧めします。アップロード後にクライアントがアクセスすることを意図していない場合は、ディレクトリの参照が無効になっているフォルダーにファイルを送信します。