• ベストアンサー

画像のアップロードについて

php+mysqlで会員制のサイトを作っております。わからないことがありますので教えてください。 画像をアップロードできるようにしているのですが、セキュリティーを考えると、アップできるファイルの形式を限定したほうが良いので、そうしようと思うのですが、 jpg、gifをはじめ、画像ファイルにはいろいろありますが、どのファイル形式をアップロード可能にし、どのファイル形式をアップ不可とするのが、良いのでしょうか? 理由も含めて教えていただけると、有難いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

jpeg, gif, png のみというので実用上十分だと思います。 インターネット上で見かける画像の大半はこれです。 逆に言えば、これ以外の画像形式だと見る人が困る可能性ことがあるかもしれません。 また、プログラムで画像の大きさを調べたりする場合でも、この3つであれば簡単です。 これが理由です。 jpeg: 一部の情報を切り捨てることによって複雑な画像を圧縮する。写真などに最適。 gif: jpegとは違って画質が劣化しない。簡単な図形などの圧縮に適している。アイコンなどに最適。 png: gifの機能+αみたいな感じ。 bmp: windowsでは一般的ですが、普通は圧縮されていないので避けるべき。 tiff: 一部では使われているが、マイナーなので操作に困ることが予想される。

xyz_1990
質問者

お礼

ありがとうございます。 まさに、期待していた回答です。 jpeg, gif, pngの3種類に対応したいと思います。

その他の回答 (1)

回答No.2

# 1さんの3種(jpg,gif,png)で一般的には大丈夫でしょうね。 > セキュリティーを考えると どの辺まで本気で考えるか、と言う事もあります。 jpegやpngの処理でも脆弱性をついたウィルスの報告があります。 http://www.itmedia.co.jp/enterprise/articles/0409/24/news006.html http://japan.cnet.com/news/sec/story/0,2000056024,20070284,00.htm http://www.symantec.com/region/jp/avcenter/security/content/13114.html まず拡張子ではじくのは当然ですが、セキュリティを考えると拡張子だけ見ても意味はなさそうです。 例えばgetimagesize関数等を使って、画像ファイルかどうかを見る、というのも対策の一つでしょう。

xyz_1990
質問者

お礼

詳細な情報をありがとうございます。 セキュリティには十分注意して、プログラミングを進めたいと思います。