2

特定のサブディレクトリにファイルをアップロードできるサイトを作っています。誰かが潜在的に悪意のある(おそらくphp)ファイルをアップロードするためのフィルターをバイパスできた場合に備えて、悪意のあるコードにアクセスできないようにすることが可能かどうか疑問に思います。私は2つの異なる方法を見ています。

1つ目は、ブラウザ(www.example.com/images/blahblah.jpg)にファイルのURLを入力してサブディレクトリ内のファイルにアクセスできないようにする方法があるかどうかを確認することですが、ファイルはそのままにしておきます。によってリンクされたときに正しく表示される<img src=images/blahblah.jpg />

これを実現する2番目の方法は、.htaccessファイルを使用してサブディレクトリのphpを無効にすることです。私は試しましたphp_admin_flag engine off

php_flag engine off

RemoveHandler .php RemoveType .php php_flag engine off Options -ExecCGI

ただし、試行するたびに何も実行されないか、ディレクトリ内のすべてが無効になります。これらが機能しない理由はありますか?PHPを無効にする、または.htaccessでディレクトリを保護するための最良の方法は何ですか?

4

1 に答える 1

1

アップロードされたファイルに関するメタデータをDbに保持し、カスタム拡張テキストファイルではなくコンテンツを保存できます。たとえば、アップロードされたすべてのものは、1.extまたはfile.myとして保存されるか、拡張子なしで保存されます。そして、ファイルが要求されたとき、あなたはただその内容を読んでダンプするでしょう。これに追加すると、アップロードされたすべてのファイルの名前が変更されます。

また、元のファイルをドキュメントルート(およびそのサブディレクトリ)から除外し、.htaccessを使用して、すべてのリクエストを1つのファイルに転送し、entron.phpを呼び出すこともできます。そのphpファイルは、ファイルを読み取り、その内容をダンプします。または、タイプが見つからないか許可されていない場合は、404を発行します。

それが役に立てば幸い。

于 2012-12-17T10:10:21.613 に答える