9

私は PHP ファイル アップロードのセキュリティについて調べており、ファイルの名前を変更することを推奨している記事がいくつかあります。たとえば、OWASP の記事Unrestricted File Uploadに は次のように書かれています。

ファイル名を決定するアルゴリズムを使用することをお勧めします。たとえば、ファイル名は、ファイル名に日付を加えた MD5 ハッシュにすることができます。

ユーザーがという名前のファイルをアップロードした場合、Cake Recipe.doc名前を に変更する理由は本当にあります45706365b7d5b1f35か?

何らかの理由で答えが「はい」の場合、元のファイル名と拡張子をどのように追跡しますか?

4

3 に答える 3

1

アップロードされたファイルの名前を変更する必要があるのには十分な理由があります。2 つが同じファイルまたは同じ名前のファイルをアップロードすると、後者のファイルが前者のファイルを置き換えてしまうため、好ましくありません。

次のようなハッシュアルゴリズムを使用できます

$extensions =  explode(".",$file-name);
$ext = $extensions[count($extensions)-1]; 
$file-name = md5($file-name .$_SERVER['REMOTE_ADDR']) .'.' .$ext;

次に、ファイル名、ハッシュされたファイル名、アップローダーの詳細、日付、時刻の詳細を保存して、ファイルを追跡できます

于 2013-07-25T19:45:49.633 に答える