[PHP-users 17064]Re: $_FILES['xxxx']['tmp_name']は信頼していいの?

Yasuo Ohgaki yohgaki @ ohgaki.net
2003年 7月 31日 (木) 08:29:22 JST


大垣です。

いちろう たこす wrote:
> こんにちは、たこすです。
> 
> 簡単な掲示板を作っているんですが、その処理の中で画像ファ
> イルをアップロードする処理をしています。そこで質問なんで
> すが、is_uploaded_file($_FILES['xxx]['tmp_name']にてアッ
> プロードの確認をしていますが、この$_FILES['xxx]['tmp_name']
> というのは完全に信用していいのでしょうか?
> それともディレクトリトラバース対策をしたほうがいいのでし
> ょうか?

普通は一時的なディレクトリに保存したファイルをmove_uploaded_file()
を使って最終的な保存先に移動します。つまり、is_upload_file()
でチェックする必要はありません。

is_uploaded_file()/move_uploaded_file()の両方ともファイルアッ
プロードアタック対策がされているのでこの関数を使っていれば大丈
夫です。

# グローバル変数を使っていなければtmp_nameには必ずシステムが設
# 定した一意なファイル名が設定されるのでクラッカーがファイル名
# を指定する事はできません。

# おかしなファイルをアップロードされないよう、必ずMIMEタイプは
# チェックするようにします。
# mimeモジュールがないなら、fileコマンドで確かめまられます。
# イメージならgdでも判別できます。

--
Yasuo Ohgaki




PHP-users メーリングリストの案内