(24) 画像の直リンクを禁止する方法

やりたいこと

他サイトから、自サイト内の画像への直リンクを禁止したい。
すなわち、他サイトの一部として自サイトの画像ファイルが表示されるのを禁止したい。

なぜならば…
自サイトを設置しているレンタルサーバーの転送量制限に影響するから。
自サイトを設置しているレンタルサーバーの負荷率が上がるから。

自分以外のアクセスがほぼ無いこのサイトでは気にする必要もないのですが… ^^;)

実現方法

.htaccessに以下を追記する。このファイルを画像が置いてあるディレクトリに置く。

SetEnvIf Referer "{自サイトのURL}" ImgRefOK
Order deny,allow
Deny from all
Allow from env=ImgRefOK

説明

1行目: もし「Referer」が「{自サイトのURL}」だったら環境変数「ImgRefOk」をセットする。
2行目: これから deny → allow の順に記述する。
3行名: とりあえず全部拒否する。
4行目: もし環境変数「ImgRefOk」が設定されているならば許可する。

注意

当然だが、HTTPで Refererが送られてこなければこの対策は使えない。
使えないというか、その閲覧者は常に画像が見られない。
本来見えてほしい人にも見えなくなってしまう…

実験

こんなHTMLを自サーバー、他サーバーに置いて実験してみる。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>
<p>hp.dogrow.netからのアクセス時のみ、↓の枠内に画像が表示されます。</p>
<div style="border:2px #000 solid;margin:5px;padding:5px;display:inline-block">
<img src="//hp.dogrow.net/sample/00024/img/sample.jpg">
</div>
</body>
</html>

(1) 他サーバーに設置した場合

こちら

※当然だが対象画像がキャッシュに残っていれば表示される。

(2) 自サーバーに設置した場合

こちら


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です