0

この質問は簡単なはずだと思いますが、ウェブ全体を検索しても答えが見つからなかったので、ここで質問することにしました。

私のウェブサイトには、phpで動作するファイルアップローダーがあります。ファイルがアップロードされているフォルダには777chmodがあります。そのフォルダー内のファイルを一覧表示するphpスクリプトもあります。私が必要としているのは、phpがそのフォルダー上のファイルをアップロードおよび参照できるようにすることですが、他の人には許可しないでください。私が想像した唯一の解決策は、そのフォルダーをデフォルトとは異なる別のユーザーにchownすることです。そのため、後でfilezillaでchmodを実行し、所有者だけにそれを許可して、phpスクリプトの出力を介してファイルを表示できるようにします。そのフォルダに移動します。

私はDebian、apache2を使用しています。何ができるか知りたいのですが。

私の目的は、phpがそのフォルダー内のファイルをアップロード、読み取り、書き込み、実行できるようにすることですが、クライアントが私のphpスクリプトを使用しない限り許可しないことです。

前もって感謝します

4

2 に答える 2

1

あなたが話しているすべてのファイルを彼ら自身のディレクトリに置いてください。.htaccessそのディレクトリにファイルを追加します。の内容はである.htaccess必要がありますdeny from all

これにより、アクセスがブロックされるため、ユーザーがファイルに手動でアクセスするのを防ぐことができます。PHPスクリプトは引き続きファイルのコンテンツを参照し、正しいコンテンツタイプの添付ファイルとして提供できます。

PHPでダウンロードするファイルを提供する方法の詳細については、https ://serverfault.com/questions/316814/php-serve-a-file-for-download-without-pproving-the-direct-linkを参照してください。

于 2012-06-06T23:56:11.857 に答える
1

Webサーバーを含むすべてのサービスは、OSのアカウントであるセキュリティコンテキストで実行されます。たとえば、apacheはapacheグループのapacheユーザーの使用を開始します。モードを変更し、所有者をこのユーザーとグループに変更するだけで十分です。それについての適切な説明があるまで、ディレクトリを777にchmodしないでください。このトリックを使用すると、Webサービスプロセスはそのディレクトリでのみ読み取り、書き込み、および実行できます。

また、ブラウザクライアントにそのディレクトリの内容を表示(読み取り)させたくない場合は、そのディレクトリへのリストを拒否する必要があります。デフォルトでは無効になっていると思います。

于 2012-06-06T23:59:48.283 に答える