3

私は、ユーザーが写真をアップロードできるサイトを構築しており、写真を非公開としてマークして、誰も見られないようにすることができます。

PHP で ACL ベースのシステムを使用する方法は知っていますが、画像ファイルへの直接リンクがあれば、誰でも写真にアクセスできます。

例: ユーザー 1 は写真 A をユーザー 2 と共有したいので、アクセスを許可します。ユーザー 2 は画像を右クリックし、その URL (たとえば「http://example.com/private123.jpeg」) をコピーして、ユーザー 3 に送信します。これで、ユーザー 3 は、見ることができないはずの画像を見ることができます。 .

要約すると、ユーザーのアクセス許可に基づいて画像を保護する方法が必要ですが、それでも超高速で読み込みます (したがって、画像が要求されるたびに php スクリプトを実行することは破棄されます)。

Apacheで可能ですか?ユーザーがログインしたときにCookieを設定して、Apacheにそれをチェックさせることができるのではないかと考えていました。Cookie が偽造できるかどうかは気にしません。ユーザーの 99,99% 以上はその方法を知りません。写真にはそれ以上のセキュリティは必要ありません。

4

1 に答える 1

7

すべての画像を独自のディレクトリに保持し、そのディレクトリに、これを含む .htaccess ファイルを配置します

RewriteEngine On
RewriteCond %{HTTP_COOKIE} !^.*name-of-my-cookie.*$ [NC]
RewriteRule .* /whatever/page [NC,L]
于 2011-05-08T08:20:26.933 に答える