はぴらき合理化幻想

海外3年/西成ドヤ2年/沖縄2年/事故物件で寝袋3年目、ミニマリスト10年目でダンボール2箱の持ち物と保存食で大阪に定住中。

redo.me.ukにサイトやブログをパクられたらリダイレクトで対策しよう、.htaccess使えなくてもOK

「redo.me.uk」というサイトがそこら中のサイトやブログのデータにアクセスしてコピーサイトを量産している。はてなブログなどのレンタルブログでは、利用者がサーバーの設定を変更して対抗することはできない。それでもコピーの手口を分析してできうる対策を講じたよ。

状況:コピーのされ具合

2015年7月14日現在、Googleで「site:redo.me.uk hapilaki.hateblo.jp」と検索した結果は下図のとおり。

ヒット数は約76件となっているが、Googleにインデックスされているのが今のところそれだけであって、実際にはほぼすべてのページがいつでもパクられる状況にあるはず(´;ω;`)

ちなみに、上図内で一番上に来ているパクられたページのオリジナルは次のページ。

深夜でもUSB LEDライトで生活したら一ヶ月の電気代が基本料金の325円だけになった - はぴらき合理化幻想

分析:サイトやブログを丸ごとコピーの手口

redo.me.ukにパクられている状況を確認している時に稀にエラー画面が表示された(下図)。

PHPとMySQLに関することが書かれていた。このことから、PHPでサイトのデータを取得してリンクのURLなどをredo.me.uk用に変換してページが表示されていることが分かった。

パクった内容をサーバーに保存しているのではなく、ページを表示する度にデータをオリジナルのページから引っ張っていることも分かった。

以上を簡単にまとめると次のとおり。

  • 自分のブログを更新するとほぼリアルタイムでパクリ先も更新される。
  • JavaScriptのコードは削除や改変をされていない。
  • オリジナルとパクリ先のURLが酷似している。URL後半は同じ。

これを元に対策を立てる。

対策:レンタルブログでもできること

理論:パクリ先から自分のブログにリダイレクト

当ブログが利用している「はてなブログ」などのレンタルブログでは、通常はサーバーの設定を利用者が任意に変更できない。つまり、パクリ先からのアクセスを.htaccessなどで拒めない。よって、利用者側でできることは限られているが、それでも今のところ対策可能だ。

JavaScriptであればブログサービスの利用者でも設定できる。パクリ先のページにアクセスすると、ページが表示される前に自分のブログの該当するページにリダイレクト(転送)するようにする。

数年前に実験した結果だが、リダイレクトするようにしたページはGoogleのインデックスから勝手に削除されていた(現在もそうであるかは不明だし、当時も必ずそうなるとまでは確認していないが)。

とりあえずはこれで対抗する。その後の様子を見て次の手を考える。

実践:JavaScriptコードをheadに追加

呪文:JavaScriptコード

次のコードをHTMLのhead内に追加する。即席で書いたので、後で何かミスってるのに気づいたら修正や追記をする。

<script>
/*
 * Redirect from redo.me.uk v1.0.0
 * Date: 2015-07-14
 * Copyright (c) 2015 http://hapilaki.hateblo.jp/
 * Released under the MIT license:
 * http://opensource.org/licenses/mit-license.php
 */
if(document.domain=='redo.me.uk') {
  var url=document.URL;
  url=url.replace(/redo.me.uk¥/[¥w-.~%]*[/]/,'');
  location.replace(url);
}
</script>

以上で、2015年7月14日現在は対策可能。これでパクられているすべてのページから自分のブログの該当するページへリダイレクトされるはず。

ただし安心はできない。今後、redo.me.ukがURLの構造を変更しない保障はないので、一時しのぎのコードで終わる場合も十分にありえる。

場所:はてなブログでheadに追加する方法

headに要素を追加の右にあるテキストボックス(下図ではフレームアウト)に挿入したいコードを追加して保存する。

はてなブログ管理画面headに要素を追加

はてなブログのPC表示とスマホ表示のCSSをカスタムする方法 - はぴらき合理化幻想

保険:はてなブログでは二段構え

はてなブログでは記事ページでだけ使える変数がある。詳細は次のページに載っているとおり。

この変数を使えば、記事ページだけではあるが、redo.me.uk以外にパクられた場合でも自分のブログの該当するページにリダイレクトできる(コードが改変や削除されていなければだが)。

管理ページ → デザイン → カスタマイズ(スパナのアイコン) → 記事 → 記事上にあるテキストエリアに次のコードを追加する。

<script>
if(document.domain!='hapilaki.hateblo.jp') {
  location.replace('{Permalink}');
}
</script>

上記コード内で黄色の背景色の部分(当ブログのドメイン)はあなたのドメインに変更すること。変更しないとずっとリダイレクトし続けるはず(未確認)。

条件部分でdocument.URL!='{Permalink}'としていないのは、記事作成時のプレビューページでリダイレクトされないようにするため。

感謝:先行研究あり

筆者がこの問題に気づいた時には、すでに次のページがあった。調べたことや対策したことを他の人にも分かりやすいように公開していただきありがとうございます。

当ページでは必要最低限のことしか書いていないが、この問題に関しての詳細は上記ページで確認できるよ。

まとめおよび所感

今のところ、JavaScriptでパクリ先から自分のブログの該当ページへのリダイレクトは可能。根本的な解決ではないが、とりあえずの対策としてこれで様子を見る。ブログ運営会社が対応してくれるとありがたいんだけどな。

RSS一部配信にできないブログは記事全文をパクられ放題!被害が出てからでは遅すぎる、はてなブログも例外ではない - はぴらき合理化幻想

はてなブログ最大のデメリットはRSSを一部配信にできず全文配信しか選択できないこと - はぴらき合理化幻想

RSS全文配信しか選択できないブログでも一部配信にして記事を丸ごとパクられないようにする対策方法 - はぴらき合理化幻想

AdSenseコードを残したまま特定のページで広告を非表示にするJavaScriptプラグイン「AdSense Filter」を自作した - はぴらき合理化幻想

スペシャルサンクス:素材提供

追記

パクりサイトのインデックス変動

2015年7月14日は約76件だったGoogleのインデックスが、2日後の7月16日には45件になっていた。

45件すべてが当サイトのパクリではなく、当サイトのドメインなどを記述している他サイトをパクっているページもカウントされている。時の経過とともに当サイトをコピーしたページのインデックスが消えていけば、当ページのJavaScriptによる対策は効果があると言えるね。

汎用性が高いコードを書いたよ

2015年7月29日追記:次のページで紹介しているコードの方が汎用性が高いので、利用するならリンク先のコードの方がいいね。

ブログを丸パクリされてもURLがほぼ同じならリダイレクトでオリジナルページに転送できるよ - はぴらき合理化幻想

てすとてすと