質問: is_uploaded_file()の目的は何ですか? ドキュメントは言う: > filenameで指定されたファイルがHTTP POST経由でアップロードされた場合はTRUEを返します。 > > `$ _ FILES ['blah'] ['tmp_name']` はPOSTアップロードの結果ではない可能性がありますか? PHPがこのファイル名を作成しました。 > これは、悪意のあるユーザーが試していないことを確認するのに役立ちます > スクリプトは、それが存在してはならないファイルを処理するようにトリックします。 > たとえば、/ etc/passwdのように動作します。 > > ファイルの内容とサイズを慎重に確認する必要があることを理解しています。しかし、どのように攻撃者がアップロードされたファイルの**一時ファイル名**を制御することができますか? または、 `is_uploaded_file()`は他のチェックを行いますか? いくつかの光を放出していただきありがとうございます。
回答: ``` bool is_uploaded_file ( string $filename ) ``` filenameで指定されたファイルがHTTP POST経由でアップロードされた場合はTRUEを返します。これは、悪意のあるユーザーが、スクリプトが動作してはならないファイル(例えば、/ etc/passwd)を処理するようにスクリプトを騙そうとしていないことを保証するのに役立ちます。 この種のチェックは、アップロードされたファイルで行われたことがユーザーに、または同じシステム上の他のユーザーにもコンテンツを明らかにする可能性がある場合に特に重要です。 適切な作業のために、関数is_uploaded_file()は以下のような引数を必要とします。 ``` $_FILES['userfile']['tmp_name'], ``` - クライアントのマシン上にアップロードされたファイルの名前 ``` $_FILES['userfile']['name'] ``` 動作しません。 ソース:PHPマニュアル