1

私は、ページの視覚的および機能的な部分が機能するようにするファイル共有 Web サイトを作成中です。PHPページのようなサーバー側のスクリプトをアップロードできるようにしたい場合、これは問題になります。このphp(など)ページは、簡単にリンクを戻したり、明らかに望まないファイルを削除したりできます。テストのために何度もアクセス許可を変更しましたが、これにより、php ファイルがこれらのフォルダーにファイルをアップロードして名前を変更することもできなくなります。これらのファイルの種類を許可したいのですが、何ができるかわかりません。

.htaccess を介してこれを行うことができると考えていましたが、方法がわかりません。

助言がありますか?

4

3 に答える 3

3

よくわかりませんが、任意のファイルのアップロード(.PHPスクリプトを含む)を許可したいが、サーバー側でそれらが実行されないようにしたいようです。

Webアクセスできないファイルストレージディレクトリを作成することをお勧めします(たとえば、www-rootの外に置くか、.htaccessファイルを使用して直接アクセスを制限します)。次に、PHPスクリプトをそのディレクトリにアップロードします。ダウンロードスクリプトを作成し、それらのファイルへのダウンロードアクセス権がそのスクリプトを通過するようにします。これにより、たとえばPHPファイルをリモートで呼び出すことができなくなります。

于 2013-01-09T18:45:28.843 に答える
1

パーミッションではなくphpの実行だと思います。次のように、.htaccess ファイルを使用して、ディレクトリの php エンジンをオフにすることができます。

<IfModule mod_php5.c>
    php_flag engine off
</IfModule>
于 2013-01-15T01:08:31.610 に答える
1

コメントを読んで正しく理解できた場合:

ユーザーが任意のファイルをアップロードできるようにします。コードを含む。.php、.asp などを含めます。ユーザーがこのコードを実行できるようにする必要がありますが、コードを「サンドボックス」環境に制限します。

ファイルは、独自のドキュメント ルート/仮想ホスト (http://exec.domain.tld) を持つ特定の場所に書き込む必要があるようです。

その仮想ホストで、セキュリティを設定できます。つまり、次のようになります。

AllowOverride None # disable rewriting and such
php value disable_functions dl,exec,passthru,system,shell_exec,popen # disable functions

さらに (!重要) basedir 制限を vhosts ドキュメント ルートに設定します。

<Directory /srv/www/exec.domain.tld/docroot>
  php_admin_value open_basedir /srv/www/exec.domain.tld/docroot 
</Directory>

この環境を実際にセットアップしたわけではありませんが、これが最良の出発点だと思います。そして、私が作ったかもしれないタイプミス/パラメータ名のエラーを修正すれば、うまくいくと思います:)

于 2013-01-18T14:54:39.593 に答える