0

疑問に思っていたのですが、画像ストアとして要求する wordpress 用の php プラグインを作成しました。ログインすると、割り当てられたファイルが表示されます。次に、ダウンロードをクリックすると、それらがダウンロードされます。

問題は、URL を知っていれば、関係なく画像をダウンロードできることです。ユーザーが一意の URL を知っている場合に画像のダウンロードを簡単に停止し、代わりにログイン権限を持つユーザーのみが画像を表示できるようにするにはどうすればよいでしょうか。

私が持っているアイデアは次のいずれかです。

  1. 参照 URL をチェックするある種の HTACCESS ハック
  2. キーが提供された場合にのみファイルのダウンロードを許可する一種の KEY システム。

情報やアイデアは本当に役に立ちます、ありがとう。

4

3 に答える 3

0
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css)$ - [F]

「mydomain.com」を自分のものに置き換えてください。上記のコードは、指定されたファイル タイプのホット リンクが発生すると、失敗した要求を作成します。画像の場合は、代わりに壊れた画像が表示されます。

于 2013-02-01T12:17:49.460 に答える
0

ファイルを保護するには、次の 2 つのいずれかを実行できます。

  1. ファイルを安全な場所 ​​(パブリックにアクセス可能なフォルダーの外) に置きます。その名前をデータベースに保存し、誰かがダウンロードをクリックすると、そのファイルを選択してダウンロードさせます。
  2. ファイルの URL を公開しないでください。誰かが画像をダウンロードしたい場合、ダウンロードをクリックします。その時点でタイムスタンプを使用して一意のファイル名を生成し、エイリアス ファイル名でダウンロードを転送できます。明らかに、ファイルは実際にはサーバー上に存在しません。元のファイルを取得してその名前を変更しているだけなので、誰かがそれを受け取ったときにそのパスを推測することはできません. ただし、何らかの理由でパスが公開された場合、ファイルにアクセスできます。

オプション 1 は、人々がドキュメントの署名など​​を保存する場合に主に使用されます。オプション 2 は、共有ホスティング環境などのようなフォルダーにアクセスできない場合に使用できます。

于 2013-02-01T12:21:56.690 に答える
0

世界中で画像を読み取れないようにする (たとえば、www ディレクトリの外のディレクトリにするか、単に .htaccess でブロックする (参照チェックは不要) 場合) 誰もあなたの画像にアクセスできないようにすることができます。

次に、資格情報をチェックするファイル (例: getImage.php?imageid=xxxx) を介してイメージを提供し、OK の場合はイメージを読み取り (PHP プロセスはイメージを読み取ることができます (例: を使用file_get_contents()))、それを提供します。

(正しいヘッダーを使用すれば問題ありませんheader("content-type: image/your_image_type");:)

于 2013-02-01T12:18:35.980 に答える