中身はPNGなのに拡張子は.jpg壊れています
実体は妥当なPNG画像。拡張子と Content-Type だけ JPEG を騙る。
photo.jpg / 3,072 バイト
ダウンロード ↓MD5 e540fddbc530e4429ef7343fe95fd7a1中身はZIPなのに拡張子は.pdf壊れています
実体は妥当なZIPアーカイブ。拡張子と Content-Type だけ PDF を騙る。
document.pdf / 600 バイト
ダウンロード ↓MD5 672fb1d28d71cf131233efa31a489b9b拡張子は信用できない
拡張子はいくらでも書き換えられます。中身が PNG でも、ファイル名を photo.jpg にすれば拡張子上は JPEG です。拡張子や Content-Type だけを信じてリサイズや変換をかけると、想定と違う形式が来て落ちます。安全なのは、先頭のマジックバイトで実際の形式を判定すること。
確認方法: Unix 系の file photo.jpg は拡張子でなく中身を見るので、 「PNG image data」と正体を暴きます。正しい署名の一覧は マジックバイト破損のページにまとめています。
よくある質問
拡張子と中身が違うファイルはどう見分けますか?
Unix系の file コマンドは拡張子ではなく中身(マジックバイト)を見るため、photo.jpg でも「PNG image data」と正体を表示します。拡張子やContent-Typeではなく、先頭バイトで判定するのが安全です。
これらのサンプルは無料ですか?
はい、会員登録不要で無料ダウンロードできます。中身はいずれも妥当なファイル(本物のPNG/ZIP)で、拡張子とContent-Typeだけが偽っています。