0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

File.type が空でも画像ファイルが空とは限らない

0
Posted at

file.type の空文字列は、種類を判定できなかったことを表す。ファイルの中身が空だという意味ではない。画像の受付処理では、MIME タイプの情報とデータ量を確認する処理を分けておく。

ブラウザーは type のためにファイルのバイト列を検査するわけではない。MDN は拡張子などから推定すると説明しており、PNG を .txt に変更すると text/plain になる例も挙げている。環境設定による予想外の値もあるため、type だけで内容を検証した扱いにはできない。

未判定の type を image/jpeg に置き換えると、「種類が分からなかった」という情報が消える。記録では「不明」と「対応外」を区別する。画面にも「ファイル形式を確認できませんでした」など、確認結果に合った説明を出す。

画像として読み込めるかの確認と、アップロード先での内容検証は別に行う。image/png という文字列を受け取っただけでは、正しい PNG が入っていると確かめたことにはならない。ブラウザーの表示とサーバーの受付条件も分けて確認する。

調査用にはファイル名、報告された type、行った確認とその結果を残す。公開する報告には、個人情報のないサンプルと必要な項目だけを使う。拡張子だけを変えて動作が変わった場合も、画像そのものを変換したとは記録しない。

参考: https://developer.mozilla.org/en-US/docs/Web/API/Blob/type

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?