10

画像のアップロードを処理するために PHP/MySQL を使用しています。ログインしたユーザーのギャラリーにアップロードされたすべての画像に、ログインしたユーザーだけがアクセスできるようにしたい。ファイル名を推測して直接リンクできるようにしたくありません。

画像を webroot の外に保存し、PHP を介してアクセスできると考えています。ただし、ユーザーが後でリンクを介して友人と画像を共有したい場合、どうすればそれを許可できますか?

ユーザーだけが自分の写真を見ることができるようにするために、他に必要な手順はありますか? 私はユーザーのプライバシーを非常に真剣に受け止めており、これを正しくしたいと考えています。

事前にご協力いただきありがとうございます。

4

4 に答える 4

9

あなたはあなたの最初の仮定で正しいです。ファイルをパブリックディレクトリの外に保存し、PHPスクリプトを使用して認証を確認し、画像を表示します。

共有の問題を回避するために、「この写真を共有してください」と言うことができる領域を提供すると、次のようなURLが表示されます。

http://www.yoursite.com/image/12390123?v=XA21IW

XA21IWは、テーブルに格納された一意のハッシュであり、有効期間を指定することも、自分でコーディングすることもできます。ページが読み込まれ、vが渡されると、テーブルを検索して、その画像IDの有効なハッシュであるかどうかを判断できます。

ここにはいくつかのオプションがあります。[この写真を共有]をクリックするたびに、次のことができます。

  1. 古いハッシュをすべて破棄します
  2. スタックに追加する
  3. 有効期限などを構成できるようにします。

または、単に画像をパブリック/プライベートにすることを許可します。

于 2010-09-28T18:40:49.230 に答える
2

プロファイル(ユーザー)ベースの共有システムを使用できます。ログインしたユーザー A は、ログインしたユーザー B が画像 C を表示できることを示し、そのような権限を自由に追加/削除できます。

表示をユーザー アカウントにリンクできない場合は、画像または画像のグループ (ギャラリーなど) に「表示パスワード」を設定できます。画像を表示する URL は、ユーザー/所有者が表示されているかどうかを確認し、そうでない場合はパスワードを要求します。

于 2010-09-28T18:35:59.100 に答える
1

ウェブルートの外に画像を保存し、PHPを介してそれらにアクセスすることは問題ないと思います。ユーザーが共有するときはいつでも、phpスクリプトを使用していつでもアクセスできます。セキュリティチェックをいつでも実行できるため、より安全にアクセスできます。実際に画像を表示する前に。

ありがとう。

于 2010-09-28T18:41:03.200 に答える
0

画像をサーバーに保存し、画像名を配置し、必要なデータとDBにハッシュを配置します....画像のパスをimages.phpというphpファイルに設定し、GETでこのハッシュを受け取り、ハッシュで画像を見つけますあなたのDBから、ヘッダーを画像/ GIFの例に設定して画像を作成します。画像へのパスは images.php?hash=abcdefg になります。

他の人はユーザーの許可について考えているので...この解決策でいくつかの回答があると思います...静かで簡単です...

于 2010-09-28T18:42:42.963 に答える