1

セッション認証でいくつかのファイルを保護したいのですが。一部のファイルはユーザーが表示できますが、表示できないものもあります。

mod_rewriteとreadfile()を使用してソリューションを実装しました。私の問題は、この関数が大量のRAMを使用し、より多くのユーザーがファイルをダウンロードするとサーバーがダウンすることです。

私はこれを試しました:1)phpハンドラーを介してファイルを渡し、prepend関数を使用します。prepend phpファイルがハンドラーの処理を終了すると、ファイルが処理され、私の場合は無効なASCII文字が原因でハンドラーがブロックされたため、機能しません。ハンドラーの処理を停止できませんでしたが、ファイルを出力しました。2)セッション、IP、およびフォルダー名を、nginx.confでチェックしようとした一時ファイルに入れて、書き換えから除外します。nginxのフォルダー名のみを変数に抽出できなかったため、失敗しました。

どうすればこの問題を解決できますか?誰か提案がありますか?

ありがとう

4

1 に答える 1

2

私が質問を正しく理解している場合、あなたは許可されたユーザーだけが特定のファイルを表示し、他のユーザーが他のファイルを表示できるようにするシステムを作成しようとしています。

私の理解が正しければ、ファイルをルートの上または安全な場所に個人的に保存し、URLに一意の識別子(例:fetch_file.php?uid =)を含むアクセススクリプト(fetch_file.phpなど)を作成します。 1234)。

ユーザーが1234の一意のIDを持つファイルへのアクセスを許可されている場合。データベース内の場所の詳細からファイルを提供します。それ以外の場合は、要求を拒否します。

このように、インターネットからアクセスできないルートの上に安全に保存されているため、ユーザーは正しい権限なしでファイルにアクセスすることはできません。

于 2012-09-22T22:54:39.983 に答える