キュレーションサイト等の画像の直接読み出しをブロックする

キュレーションサイト等から画像を直接読み出されてお困りのサイトも多いと思います。
私自身もfind-travelというサイトから画像への直接読み出しをされまして、アップしている画像はFlickrに置いていたので従量課金が膨らむようなことはありませんでしたが、無断での使用は気分的には良いものではありませんでした。

今回はFlickrだったので個人的な被害は特に出ていませんが、自分のサーバーだったらと考えるとちょっと恐ろしいです。
理由はカグアさんの記事「DeNA会長の南場智子様にお願いがあります」に詳しく記載されています。

近年このようなお行儀の悪いキュレーションサイトは増加傾向にあり、コンテンツを配信する側も何かしらの防御を行っていかないと、ある日突然サーバーの請求だけが激増するということが発生しうるのです。

前置きが長くなりましたが、画像の直接読み出しを防ぐためのApacheのMod Rewrite設定(htaccessに記述可能です)をご紹介しておきます。

完全にブロックすることで、おそらくですがキュレーションツールから画像の設定ができなくなると思いますので、サーバー負荷を防ぐことができます。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} .jpg$
RewriteCond %{HTTP_REFERER} (example.com)
RewriteRule ^.*$ - [F,L]
</IfModule>

上記サンプルのRewriteCondはAND条件となっています。
1行目はjpgファイルへのアクセスだったらという意味です。
2行目がブロックしたいドメインを記載します。正規表現が使えますのでOR指定も可能です。

応用編と言いますか、以下の例ではexample.comからのjpgファイルへの直接読み出しの場合はdummy.jpgを返します。
変な画像等を返したい場合はこちらをどうぞ。(ただしサーバーへのアクセスは減らないのでサーバー代が従量課金の場合はご注意を)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} .jpg$
RewriteCond %{REQUEST_URI} !^/dummy.jpg$
RewriteCond %{HTTP_REFERER} (example.com)
RewriteRule ^.*$ /dummy.jpg [L]
</IfModule>

2行目はdummy.jpgへのアクセス以外という意味で、ダミー画像への参照の場合のリダイレクトループを防ぐための記述です。

逆に自分のドメイン以外からという書き方もできるのですが、FacebookやTwitterなどのソーシャルにシェアされた際にOGP画像が読み出せないという弊害が出てしまいますので、このあたりはRewriteCondを書き換えることで柔軟に対応していただければと思います。

なお、今回のfind-travelの事例ですが、元画像を消したら記事から画像参照ブロックそのものが消えました。
サポートに連絡したからだとしても早すぎるので、おそらくですがキュレーションツールで画像読み出しができなければブロックごと消すような仕様が入っているものと思われます。
つまり、オリジナルのサーバーからの直接画像読み出しは確信犯ではないかと。

記事だけでなく画像の丸パクリにも気を付けましょうというお話でした。

キュレーションサイト等の画像の直接読み出しをブロックするにコメントする

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