カテゴリー
サイト構築

直リンクでサイトの画像使われているので宣伝画像に差し替えた

やめてよね

 「ついに俺を怒らせてしまったようだな…」

それ引用じゃないだろって引用が多い

 「引用元」って書いとけばいいんだろ的な画像の引用が最近多すぎないか? うちは素材サイトじゃないんだぞ、と。

画像の引用ってしていいの?

 こちらに書いてある「引用を行う必然性」っていう観点ではアウトな引用がほとんどな気がする。ただ見栄えを良くしたいだけってのか多い。

 なんというのか、画像そのものについて語ってるとか、必然性のあるものならいいのよ。「この写真綺麗!」とか、「この写真のこの部分に写っているのが、今回説明している○○です」とか。こういうのは本とか雑誌の引用とイメージ近いよね。でも、見栄えのためだけに画像だけ拝借して引用って、それは引用じゃないだろと。

画像直リンクとかさらに最悪

 さらにお行儀が悪いのが画像に直リンクしているケース。普通は自分のサイトに画像ファイルを置いてページに表示するんだけど、直リンクは画像ファイルは自分のサイトに置かずに、毎回元のサイトの画像を取りに行って表示している。

直リンクダメ!ゼッタイ!
直リンクダメ!ゼッタイ!

 これの何がダメかというと、元のサイトに画像というデータ量のでかいデータをとりに行くので、元のサイトのシステムに負担がかかります。うちが借りているGoogle Compute Engineのサーバーはデータの転送に関してもお金がかかるので、わざわざ他のサイトの「見栄え」のために私が余分なお金を払うことになります。冗談じゃないぞと。

お行儀の悪いところに教えてあげなきゃね

 実は直リンク対策はそんなに難しくない。ブラウザが送ってきている「HTTP リファラ」をチェックすればいいから。リファラには、そのリクエストがどこのページから送られてきたかが記録されている。もしリファラの他のサイトのページであれば拒否してしまえばいいというわけ。

【パクリ、ダメ、絶対】記事を無断転載されたので、Nginxサーバーで画像の差し替え対策で仕返し! | gori.me(ゴリミー)

 ちょっと応用すると拒否の代わりに、違う画像を出すこともできちゃう、素敵😁

 自分は以下のような画像を用意した。

やめてよね

 力作である😀

 本当は拒否した方がうちのサイトに負荷がかからないのでいいのだけど、直リンクしてるところはなくなってしまえ、と思っているので明示的に意思表示した。

 うちはNginxを使っているので以下のような設定を追加した。

[bash]
location ~ .*\.(gif|jpe?g|png|avi|flv|mov)$ {
valid_referers none server_names ~\.a\-tak\.com ~.*\.github\. ~\.google\. ~\.yahoo\. ~\.bing\. ~\.facebook\. ~\.fbcdn\.;
if ($invalid_referer) {
rewrite ^(.*)$ /blog/wp-content/themes/twentyelevenwithsidebar/img/deny.jpg break;
}
}

location ~ .*\.(css|js|svg)$ {
valid_referers none server_names ~\.a\-tak\.com ~.*\.github\. ~\.google\. ~\.yahoo\. ~\.bing\. ~\.facebook\. ~\.fbcdn\.;
if ($invalid_referer) {
return 403;
}
}
[/bash]

 見事に直リンクサイトにこの画像が表示され始めた。ふっふっふ。

設定は以下のサイトも参考にさせていただきました。ありがとうございます!

nginx の valid_refererで直リンクを防止する - S.F. Page

この記事を書いた人: A-tak

A-tak.com(えいたっく どっとこむ)の管理人。
Apple野郎なおっさんでしたが、ちょっと最近のAppleには飽き気味。
A-tak.comは2002年2月から運営(前身のサイトは1999年3月から)。今年で18年目!

Youtube / Twitter / Mastodon / Facebook