一般的に、これを行う適切な方法は、次のようなコマンドを使用した.htaccessファイルのようなものです。
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?somesite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://i.imgur.com/aNbhd.jpg [L]
ただし、PHPでこれを行う場合は、基本的に同じです。$_SERVER['HTTP_REFERER']がページのURLで始まることを確認するだけです。ただし、HTTP_REFERERをスプーフィングすることは可能であるため、100%になることはありません。ただし、ユーザーはこれを行う必要があります(外部サイトはかなり(ほとんど...)これを偽装することはできません)。そのため、他のサイトがiframeやその他のフープラにサイトを配置せずに画像を埋め込むことを防ぎます。
別の方法で、サーバー上で最も困難になるとはいえ、おそらく最も安全な方法は、$ _ SESSION変数を使用してトークン/フラグを渡し、トークンをチェックすることです。
session_start();
$_SESSION["allow_images"] = true;
次に、それらの画像を取得するPHPページで:
if($_SESSION["allow_images"])
{
//Send some pics!
}
ただし、これは、ユーザーが自分のセッションをまだアクティブにしていないほど最近サイトにアクセスしていない場合にのみ機能します。