favicon用の.icoファイルをユーザがアップロードできるようにしたいと思います。

ですが、ユーザからの入力ということもあり、脆弱性とか気になります。

ちょっとチェックしたくて試してみたんですが、getimagesize()関数では.icoファイルが判定されませんでした。また、http://www.revulo.com/blog/20070520.html にヘッダによる判定法が載っていますが、それでは不充分ではないかと感じています(そもそも攻撃手段がない、というならそれでもよいです)。

PHPを使って、アップロードされたファイルが本当に.icoかどうかを判別するにはどうすればいいですか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/09/07 22:35:59
  • 終了:2007/09/14 22:40:04

回答(1件)

id:withgod No.1

withgod回答回数32ベストアンサー獲得回数12007/09/08 02:27:25

ポイント60pt

phpのみで完結しないと駄目でしょうか?


icoutils home

外部コマンドを呼ぶことが可能で有れば、こういうコマンドラインツールが有るので、これに食わせてみて判断とかでもいい気がします。


思いつく脆弱性としては、CGI等を配置、拡張子では無くファイルの中身を見て処理を判断するIEの独自仕様(6までだったかな?)辺りを使ってスクリプトの記述とかすると悪さが出来そうでは有ります。

#実際の挙動は解りませんが。<IE

id:co3k

ちょっとPHPで完結しないとキツイですね……

2007/09/10 10:33:21

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません