0

この質問に似た質問への回答を探しています:アクセスされているユーザーのファイルを保護して、所有者のみがアクセスできるようにしますか?

ユーザーが自分のファイルや画像をアップロードできる Web アプリケーションを php で作成していますが、これらのファイルを所有者以外がアクセスできないようにするにはどうすればよいですか。

この質問に対して受け入れられた解決策は問題ないので、ユーザーがこのファイルの使用を許可されているかどうかを確認する特別なスクリプトを使用して、ファイルの要求を「プロキシ」します。

しかし、DBにクエリを実行せずにこれを行いたいです。したがって、ユーザーがファイルへのアクセス権を持っているかどうかを、その場所または名前で検出できるはずです。

特定の場所のため、すべてのユーザーファイルを名前にユーザー ID を含むフォルダーに入れることはできないため、名前の一部にユーザー ID が含まれるファイル名について考えます。したがって、ファイル名は次のようになります。

1 _pic.jpg、2 _pic.png、1 _pic.gif など、名前の先頭の数字 = ユーザー ID

次に、ファイル名を簡単に解析し、そこからのユーザー ID をセッションからのユーザー ID と比較し、この方法でユーザーがファイルの所有者であるかどうかを確認できます。

そのようなアプローチについてどう思いますか、それにはどのような欠点がありますか?

前もって感謝します!

4

2 に答える 2

1

ファイルにアクセスしようとしているユーザーが最初にファイルをアップロードしたユーザーであるかどうかを確認するだけでよい限り、アプローチはまったく問題ありません。ドキュメントルートからディレクトリにアクセスできないようにしてください。そうすれば、スクリプトまたは.htaccessファイルに障害が発生した場合でもファイルは安全です。また、ファイル名が異なるユーザーに対して衝突しないことを確認してください。

于 2012-06-20T11:57:29.637 に答える
0

この関数がデータベースにそれほど多くの負荷を加えるとは想像できません。ただし、それが懸念される場合は、データベースにアクセスする安全なログイン システムを作成してください。セッションごとに 1 回だけ実行する必要があるため、サーバーの負荷はそれほど大きくありません。ユーザーがログインしたら、それ以降使用できるセッション変数に値を設定して、ユーザーがファイルにアクセスできることをスクリプトに伝えます。

于 2012-06-20T11:56:42.357 に答える