:-)私は、これは十分に私のために思える昨日穴当日読み、誰もが知っている:)
それがコーディング来るとき、私は初心者だとセキュリティ私はまた、以下のことをお勧めすることができます:
is_uploaded_file
filenameで指定されたファイルがHTTP POST経由でアップロードされた場合はTRUEを返します。これは、悪意のあるユーザーが/etc/passwdのように、スクリプトが動作してはならないファイルを処理するようにスクリプトを騙そうとしていないことを確認するのに役立ちます。この種のチェックは、アップロードされたファイルを使って行われたことは、その内容をユーザーに、または同じシステム上の他のユーザーにも明らかにする可能性があります。
basename()
などのファイル名は、basename(c:/fakepath/something.avi); // will return something.avi
などのファイル名のみを取得する機能があります。一部の人がディレクトリに似たファイル名を指定してコンピュータを欺こうとするためです。
basename()
について
より:
ファイルをアップロードすると、あなたは/uploads/
フォルダの下に、たとえば、あなたがしたいディレクトリにファイルを移動したいとが、悪意のあるユーザーがこのようなファイルに名前を付けることができますsomething/hello.jpg
とし、move_uploaded_file($source,$destionation)
でファイルを移動すると、$destination
は/uploads/something/hello.jpg
になり、問題が発生します。適切なファイル名だけが得られるようにするには、hello.jpg
などを返すbasename()
関数を使用する必要があります。ここbasename
訪問の使用方法については
$file_name = basename($_FILES["upload_ctrl"]["name"]);
if(!move_uploaded_file($_FILES["upload_ctrl"]["tmp_name"],"uploads/".$file_name))
echo "Opps I cannot upload the file";
:http://php.net/manual/en/function.basename.php
ステップ1はスキップする必要があります – dqhendricks