PHP Web サイトでは、彼らが提案する唯一の実際のチェックは、is_uploaded_file()
ormove_uploaded_file()
を使用することです。もちろん、さまざまな理由から、通常、ユーザーがどのような種類のファイルをアップロードすることも望ましくありません。
このため、私は「厳密な」MIME タイプ チェックをよく使用してきました。もちろん、多くの場合、MIME タイプが間違っていて、ユーザーがファイルをアップロードできないため、これには大きな欠陥があります。また、偽造および/または変更も非常に簡単です。それに加えて、各ブラウザーと OS は、それらを異なる方法で処理します。
もう 1 つの方法は、拡張子を確認することです。もちろん、これは MIME タイプよりも簡単に変更できます。
画像だけが必要な場合は、次のようなものを使用するとうまくいきますgetimagesize()
。
他の種類のファイルはどうですか? PDF、Word文書、またはExcelファイル? それともテキストのみのファイルですか?
編集: mime_content_typeまたはFileinfoがなく、system("file -bi $uploadedfile") で間違ったファイル タイプが返される場合、他にどのようなオプションがありますか?