is_uploaded_file: HTTP POST でアップロードされたファイルかどうかを調べる (ファイルシステム 関数) - PHPプロ!マニュアル

PHPマニュアル

is_uploaded_file: HTTP POST でアップロードされたファイルかどうかを調べる

is_uploaded_file

(PHP 4 >= 4.0.3, PHP 5)

is_uploaded_fileHTTP POST でアップロードされたファイルかどうかを調べる

説明

bool is_uploaded_file ( string $filename )

filename という名前のファイルが HTTP POST によりアップロードされたものである場合に TRUE を返します。 悪意のあるユーザがスクリプトをだまして、 本来見られてはいけないはずのファイル (/etc/passwd など) にアクセスすることを防止したい場合に、この関数は有用です。

この種の確認は、アップロードされたファイルに関して何でもできる場合には、 その内容をユーザ、または同じシステム上の他のユーザにさえ 暴かれる可能性があるため、特に重要です。

適切に動作させるため、関数 is_uploaded_file()$_FILES['userfile']['tmp_name'] のような引数を必要とします。 アップロードされたファイルのクライアントマシン上での名前 $_FILES['userfile']['name'] では動作しません。

パラメータ

filename

調べたいファイル名。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例1 is_uploaded_file() の例

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo 
"ファイル "$_FILES['userfile']['name'] ." のアップロードに成功しました。\n";
   echo 
"その中身を表示します\n";
   
readfile($_FILES['userfile']['tmp_name']);
} else {
   echo 
"おそらく何らかの攻撃を受けました。";
   echo 
"ファイル名 '"$_FILES['userfile']['tmp_name'] . "'.";
}

?>

参考


PHPマニュアル



Pick Up Q&A

Q
マジッククォートとmysql_real_escape_string
 このエントリーをはてなブックマークに追加 
A
magic_quotes_gpcでは、SQLインジェクション対処は十分できません。主な理由として、以下が上げられます。 ・magic_quotes_gpcは文字コードを考慮しないで処理するので、Shift_JISを使っている場合、SQLインジェ...

>>続きを読む

SQLインジェクション対策は時と場合で使う関数が変わります。その時にあったものを使いましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)