- ベストアンサー
JPGファイルが動く仕組みとは?
- 投稿者がJPG形式でGIFのような動く画像をアップロードする方法についての疑問。
- 会員制WEBサイトでは、JPG画像のみが投稿可能だが、動く画像が含まれている例が見受けられる。
- 実際にはGIFファイルがJPGと偽装され、ページの読み込み時に動き始める仕組みについての詳細を求める。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
拡張子の偽装は簡単です。 リネームするだけですからね。 最近のWindows等では拡張子を表示しない設定がデフォになっていますが、マルチ拡張子が可能なOSでは「ファイル名.gif.jpg」というように記述するとファイルの種類がjpgとして扱われたりします。でも実際はGIF。 ですが、このような記述方法は私なんかは普通に使用しています。 大量のファイルを整理するときフォルダを作成して振り分けるのですが、その時のフォルダ名に「100.要求仕様書」「100.要求仕様書.old」「BackUp.20230101.100.要求仕様書」という感じで・・・ ファイルそのものは滅多にしませんが、設定ファイルやソースファイルだと「Sample.docx」を「Sample.docx.bak」みたいにしてコピーを同じフォルダ内に残しておくこともあります。 これはOSの仕様でもありますからアップローダーが対応していない拡張子をどうしても使用したい場合の苦肉の策かもしれませんね。 拡張子というのはタダの「見出し」です。内容と一致しているわけではありません。 JPEGなど特定用途向けのファイルの中身にはヘッダーという領域があり、その領域を見ることで画像ファイルでもJPEG(JFIF)やGIF、PNGを見分けることができます。 サーバーOSのサービスとして起動するプログラムの中には拡張子よりもヘッダーで判断するものもあるでしょう。だからウィルス対策が必須になるワケなんですが・・・ UNIX/Linuxは拡張子で実行可能ファイルか否かを判断しているわけではないですよね?ファイルの属性で判断している。 って感じで、本来の目的とはかけ離れているようなものが実は深く関係しているって事がよくあります。
その他の回答 (3)
- Kaneyan-R
- ベストアンサー率42% (1340/3126)
拡張子偽装で間違いないかと。 昔某コミュニティサイトでJPEGオンリーのアップローダーでGIF投稿するのにやってたから。 写真はJPEGの方が良いのだけど、図解説明するベタ画像だとJPEGにすると荒くなるし、色味も変わってしまうので、拡張子偽装でアップしてました。
- asciiz
- ベストアンサー率70% (6803/9674)
おそらく、ファイル名の拡張子だけを変えた、中身GIFのファイルです。 そしてダウンロードするときも、JPG拡張子のままダウンロードされています。 しかし Google Chrome などのブラウザは、画像ファイルの中身がGIFフォーマットであれば、GIFファイルとして表示できてしまうのです。 そしてそのファイルを保存するときも、中身GIFならばと、ファイル保存ダイアログで拡張子.GIFを付けてくれるのではないでしょうか。 以下の作業でそのことを確認できるでしょう。 (1)適当なアニメーションGIFファイルを用意する。 (2)エクスプローラで拡張子JPGに変更する。 (3)そのファイルを Google Chrome にドラッグ&ドロップする。 (4)アニメーション表示される。 アップローダの方で中身をチェックせず、ファイル名だけで判断しているからそんなファイルをアップロードされてしまうこともある訳です。 そのようなことを避けたい場合、アップロードされたファイルの中身を確認してから登録すれば良いでしょう。 >JPEGファイルの構造 >https://hp.vector.co.jp/authors/VA032610/JPEGFormat/StructureOfJPEG.htm JPEGファイルであるならば、ファイルの先頭は 0xFF 0xD8、そして7バイト目からASCII文字で「JFIF」と言うデータがあります。 これがあるならば確かにJPEGファイルだ、と言うことでその後の処理を進め、無ければエラーにします。 ただ、Mac系を使っている人からは、先頭128バイトに「Mac Binary」というデータが付加された物を送られることがあります。 これは、Macにおいてはファイル名の拡張子なんかに依存せず、どのようなアプリケーション向けのファイルであるか、と言うのを保存してある領域です。 ファイルの本当の中身自体は129バイト目から始まるため、JPEGファイルであるかどうかを確認するのに、 ・ファイルの129バイト目から0xFF 0xD8 ・ファイルの135バイト目からASCII文字で「JFIF」 も確認し、こちらでOKならばJPEGファイルだった、としても良いでしょう。
- みきの(@mikino)
- ベストアンサー率49% (921/1847)
単純にGIF画像の拡張子をJPGにしてるだけかもしれません。 ただダウンロードしたらGIFになるというのがちょっと分からないですねぇ。