web-dev-qa-db-ja.com

誰かが私のウェブサイトのリソースを使用しているかどうかを確認する方法は?

Webサイトでホストされているリソースを誰かが使用しているかどうかを確認するにはどうすればよいですか?

私はウェブサイト(PHPでコーディングされています)を持っています。そこにいくつかの画像をアップロードしました。他のサイトでこれらの画像を使用している人を知りたいです。通常、人々は画像URLを使用して、私のWebサイトの画像にアクセスして表示します。

コードは必要ありません。ガイドラインが必要です。擬似コードを教えていただければ、それもありがたいです:P

編集:
回答を見て、私は自分の質問が精通していないと感じているので、言い換えると:

自分のサイトでホストされている画像を使用しているユーザーを確認するには、PHPコードが必要です

これはPHPで可能ですか? 「はい」の場合、そのアルゴリズムはどうあるべきですか?コーディングのガイドラインはありますか?

1
Zaffar Saffee

PHPを使用してサイトでホストされている画像に対して直接行われたリクエストに関する情報を見つける方法はありません。画像は静的に提供されるため、PHPスクリプトは実行されません。

すべての画像をWebルートの外に保持し、次のPHPスクリプトを使用してすべて読み込むことができます

  1. クエリ文字列をチェックして、提供する画像を判断します
  2. 画像が存在することを確認します
  3. 適切なコンテンツタイプヘッダーを出力します
  4. キャッシュ制御ヘッダーの適切なセットを出力します
  5. 画像データを読み込んで出力します

また、If-Modified-Sinceリクエストなども処理する必要があります。 (だからこれを正しく行うには多大な努力が必要だろう)。

それが完了すると、$_SERVERに含まれる情報をログに記録できます。これには、画像にリンクまたは埋め込むWebサイトのURLを通知する$_SERVER['HTTP_REFERER']が含まれます(ブラウザのユーザーがリファラーヘッダーを隠します)。

Webサーバーのログからリファラー情報を取得する方が、はるかに優れています。

6
Quentin

リファラーをログに記録できます。

$_SERVER['HTTP_REFERER'];

ただし、これはクライアントによって追加され、上書きできることに注意してください。しかし、それはあなたのサイトがどのように使用されているかを示すものになるでしょう。

Googleアナリティクスなどを使用してユーザーを追跡することもできます。

0

このガイドでは、PHPを使用してサイトのリソースを保護する方法について説明します

http://safalra.com/programming/php/prevent-hotlinking/

0
Anagio