ここで私は本当にあまりにも多くて、それを考えていませんでしたが、仕事もアイデアだし、それを試していない:
- Serverは、ページのリクエストを受信します。
- イメージを参照するワンタイム・キー(OTK)を使用して、PHPでページ・コンテンツを生成します。 OTKは、セッション変数またはデータベースに格納できます。
- クライアントがページをレンダリングすると、サーバーはOTKを使用して、イメージのクエリパラメータを介して要求を受け取ります。イメージを提供し、OTKを削除します。たとえば、
、代わりに:
<img src="www.mysite.com/mypage/myimage.jpg">
...ワンタイムキーを生成し、それはあなたのイメージを参照するように、ルックアップテーブルにそれを格納します。
4e33fd162fe95 => image.jpg
...その後使用してページを生成する代わりにOTK:
<img src="www.mysite.com/mypage?image=4e33fd162fe95">
サーバーがそのイメージの要求を受信すると、イメージを送信し、OTKを削除します。これは、ページに対するすべての要求が新しいOTKを生成することを意味します。そのURIをイメージ用に再度使用しようとしても機能しません。
これには、クライアント側のキャッシュが機能しなくなり、サーバーにオーバーヘッドが発生するため、パフォーマンス面でいくつかの注意点があります。その他の注意点もあります。
参照元ヘッダーを確認できます。イメージがあなたのウェブサイトから読み込まれている場合、参照元はあなたのドメイン上のURLでなければなりません。それは絶対確実ではありませんが、一部の広告ブロック/プライバシーソフトウェアとプロキシはリファラーヘッダーを削除し、そうでないときは直接アクセスのように見せます。 –
画像をdivの背景にする - ユーザーが直接リンクを取得することは難しくなりますが、可能です。 –
リファラーをチェックする方法が間違っています。参照元は空でも、間違ってもかまいません(前のページのURL、現在ではない)。 –