3

サーバー内のいくつかのファイルをダウンロードから保護したいのですが、サイトはそれらにアクセスできる必要があります。サイトからアクセスする必要があるいくつかの字幕ファイルを保護したいのですが、誰もそれらをダウンロードしたくありません。サイトはホストされています。

たとえば、一部のサイトでは、ユーザー、ビデオ、および IP に関連付けられた奇妙な文字列が使用されています。私の場合、このようなものを使用できます。

http://www11.some-site.com:182/d/qygiatnqvsulzrqmk7n6nbhddbcscvyguy4auc3fn4nvf23jp64tjcpa/File-needed.mp4?start=0
4

2 に答える 2

11

Apacheを使用している場合は、.htaccess ファイルで書き換え規則を使用する必要があります。他の HTTP サーバー ブランドを使用している場合は、ここで説明するのとほぼ同じロジックを使用する必要があるため、その場合は HTTP サーバーのマニュアルを確認してください。

説明:

www.me.com/index.php と入力すると、PHP システムは、echo使用するコマンドによって生成されたコンテンツをコード内に配置します。

www.me.com/myfiles/iou345yo13i2u4ybo34ybu3/passwords.txt と入力すると、サーバーはファイルの内容をクライアント ブラウザーに送信します。クライアント ブラウザーは、ファイルの拡張子に応じて、ファイルとしてダウンロードするか、ページとして表示するかを尋ねます。

.htaccess ファイルで次のようにすると、次のようになります。

 RewriteEngine On
 RewriteRule ^myfiles/([^/]*)^.pdf$ /index.php?file=$1& [L]
 # avoit direct access to your server directories file listing
 Options All -Indexes

www.me.com/myfiles/file123.pdf と入力しますが、サーバーは「file」パラメーターのコンテンツとしてファイル名を使用して index.php を実行し、コード内でセッションを確認して、ユーザーがこのファイルをダウンロードする権限を持っているかどうかを確認してください。

ユーザーが権限を持っている場合は、 readfile() 関数を使用してファイルをユーザーに送信しますが、ユーザーはそのファイルがどこから来たのか (つまり、実際のパス) を認識しません。

ここでこれを行う方法を見てください:

PHP - ファイルをユーザーに送信

于 2013-04-29T20:53:10.977 に答える
-4

コンテンツのアクセス許可を 644 に変更します。

于 2013-01-05T16:21:27.200 に答える