[PHP-users 5952] ファイルアップロードのセキュリティーホールに関して

安井直志 php-users@php.gr.jp
Thu, 07 Mar 2002 12:37:24 +0900


初めて投稿させていただきます、安井と申します。

今回のPHPのファイルアップロードに関するセキュリティーホールに
関する質問です。現在Win2000Server+Apache4.0.6+PHP1.3.20の環境
で開発を行っております。

まず、簡単に現状を説明いたしますと、現在のPHPソースの中に以下
のようなコードが存在します。(画像ファイルを指定してサーバーに
アップロードするというものです。)
<form name="f1" method=POST action="./×××.php">
    <input type="file" name="sImage" size="40">
    <input type="submit" name="button_submit" value="登録">
    <input type="reset"  name="button_reset"  value="取消">
</form>

POSTした後、PHPの処理でファイル名の拡張子が「jpg」か「gif」以外
はサーバーにアップロードしないようにしています。

で、ここからが本題ですが
http://www.isskk.co.jp/support/techinfo/general/PHP_xforce.html
上記サイトに「特別に作成した MIME 符号化データを含む PHP フォー
ムをアップロードする必要があります」と、あります。

私はこの意味を、悪意のあるPHPソースを作成し、そのソースをアップ
ロード後、このファイルを実行される事がこのセキュリティーホールで
ある、と解釈しました。(単純な考え方かとは思いますが…)

つまり、アップロードをするファイルが、「jpg」「gif」だけなら問題
は発生しない、と考えたのですがこの考え方は間違っているのでしょう
か?
(もしかすると、POSTしてデータをファイルをサーバーに送っている時
点で問題なのかな?)

後、具体的にどのような現象が発生するのか、と言うこともあわせて説
明していただければありがたいです。

初心者の質問で恐縮ですが、ご教授の方宜しくお願い致します。

安井直志 yasui@alpsgiken.gr.jp