ホームページ >バックエンド開発 >PHPチュートリアル >ファイルのアップロードに関する基本的な質問をする

ファイルのアップロードに関する基本的な質問をする

WBOY
WBOYオリジナル
2016-06-23 13:39:08789ブラウズ

s_uploaded_file と file_exists は両方ともファイルが存在するかどうかを確認しますか?パラメータはすべてパスですが、なぜファイルをアップロードするために is_uploaded_file を使用する必要があるのでしょうか?


ディスカッション(解決策)への返信

あはは、これは歴史的なルーツを持つ質問です。 is_uploaded_file の使用は完全に自己防衛のためです

PHP は、アップロードされたファイルを処理するための 2 つのソリューションを提供します
move_uploaded_file

is_uploaded_file
コピーまたは名前変更

コピーと名前変更はどちらもファイル システム関数であり、もちろんファイルのアップロードのためだけではありません
copy 関数を使用して Linux ユーザー パスワード ファイル etc/password のコピーを作成します

PHP には register_globals スイッチも用意されており、これは受信変数をグローバル変数テーブルに自動的にインポートするために使用されます (php5.4 以降は利用できません)
このスイッチをオンにすると
変数 $file_name、$file_tmp、$file_type.... およびその他の変数が生成されます
、upload.php?file_tmp=etc/password も $ を生成しますfile_tmp 変数
次に、この $file_tmp が type=file または URL パラメータによって生成されたものであるかどうかを正確に知る必要があります

もちろん、php には保護メカニズムの層があるため、これは起こりません (これはあなたに任せます)自分自身)
ただし、コードは常に変更されるため、保守的である方が安全です。どこかに危機があるかも知れません

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。