リモートイメージがホットリンクで保護されているかどうかを確認したいのですが。
- 画像がホットリンクから保護されていない場合は、画像を表示したいと思います。(心配しないでください。ソースに表示されるハイパーリンクを追加し、正当な所有者に画像を削除する可能性を提供します。)
- 画像が保護されている場合、私は何もしません。
(PHPおよび/またはJavascriptを使用して)ホットリンクで保護された画像と「ホットリンク可能な」画像を区別することは可能ですか?
リモートイメージがホットリンクで保護されているかどうかを確認したいのですが。
(PHPおよび/またはJavascriptを使用して)ホットリンクで保護された画像と「ホットリンク可能な」画像を区別することは可能ですか?
はい、これは間違いなく PHP から実行できます。ファイルをホットリンクする場合は、HTTP 接続を作成し、サイトへのリクエストに Referer ヘッダーを設定します。画像データで 200 応答を受け取った場合、それはホットリンクで保護されていません。301 転送応答を受け取った場合、それはホットリンクで保護されています。
次のようにするのが最も簡単かもしれません。
<img src="http://example.com/image.png" onerror="alert('Image not found or protected');" />
もちろん、それを見つけることは可能ですが、それには HTTP リクエストを作成する必要があり、特にリモート ホストが遅い場合や負荷がかかっている場合は、費用がかかる可能性があります。
クライアント側の JavaScript を使用してこの URL ごとに簡単に検出することはできませんが、 hotlink.js を使用してホットリンク保護を完全に回避できます。