0

chmod 777は、アップロードスクリプトを機能させるための最良の方法ではないことは誰もが知っています。だから私はそれを使うときに何が最善の解決策になるかを考えていました。

ユーザーがファイル「 picture.jpg」をアップロードすると、名前を「md5(username-picture-1.jpg)」に変更して、Webページにとして表示できると思いました<img src="files.php?img=username-picture-1.jpg">

次に、このfiles.phpファイルは次のようになります

<?php
    $file = md5($_GET['img']);

    header('Content-Type: image/jpeg');
    header('Content-Length: ' . filesize($file));
    echo file_get_contents($file);
?>

そうすれば、ユーザーはアップロードしたファイルのファイル名がわからなくなり、実行できなくなります。私は正しいですか?

そして明らかに、mimeタイプやその他のもののようにアップロードを処理するために他のいくつかのチェックがあります。これが、ユーザーがアップロードしたファイルを実行できないようにする方法であるかどうかを知りたいだけです。

4

1 に答える 1

1

アップロードされたファイルを含むフォルダーに.htaccessファイルを追加して実行を防ぐこともできますが、ファイルシステムに永続的に保存する前に、アップロードされたファイルのMIMEタイプ/ファイル拡張子を確認する方が良い方法だと思います

于 2012-11-20T17:30:24.633 に答える