sample.jpg上記例のように内部バイナリのコンバート処理を行うことなく、拡張子を変更することであります。Hexとして上記ファイルを検閲すると、pngファイルと確認することの出来るマジックナンバーがバイナリヘッダーに存在しますね!各種ファイルのマジックナンバーリストでは、このファイル名上の拡張子がjpgで内部的にpngであるファイルをクライアントサイドのフォームよりPOSTすると、PHPではどういった挙動になるのか確認してみましょう!サーバーサイドで拡張子が偽装されたファイルのバリデーションをするまず前提条件として、下記のフィールドよりPOSTされたファイルを扱うとします。リネームしたファイルをPOSTします。$_FILES["up-file"]["type"];では、MIME-Typeとしてimage/jpegを確認できるはずです。これは、MIME-Type一覧ページで確認できる通り、jpgファイルとして認識されていることがわかる証拠です。$mime;として、POSTされたファイルのバイナリからMIME-Typeを取得すると、image/pngのように本来はpngファイルであることを確認できます。$binary_mime_type;ありがとうございました!!!追記POSTされたファイルのHexをPHP上で確認する方法。Hex)でBinaryデータをHexにコンバートします!上記コード中の$_FILES["識別子"]["tmp_name"]には、POSTされたファイルの一時的(temporary)なパスが文字列(String型)として格納されているだけなので、バイナリデータとして扱うためにfile_get_contentsをしています。requestStockLike3@huuya10年くらい趣味でプログラミングをやっている21歳のhuuyaです。フルスタックも可能ですが、バックエンドで書くことを専門としています。フレームワーク開発を趣味で個人的に現在進行系でしてたり、自作OSの勉強したり。upLoginユーザーは見つかりませんでした。