はぴらき合理化幻想

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

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

ブログを丸ごとパクられて、URLがオリジナルと酷似しているのなら、JavaScriptでオリジナルページに転送できる。最近(2015年7月)この手口が目立つので、多くのパクリサイトに対抗できるコードを書いたよ。

経緯

次のページで述べているとおり、2015年7月上旬に「redo.me.uk」というサイトがさまざまなサイトやブログをパクっているのが話題になっていた。この状況を鑑みてredo.me.ukにのみ有効なコードを作成した(記事ページ用の保険コードはどのパクリサイトにも有効)。

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

上記ページを公開した直後に、また別のパクリサイト(appspot.comのサブドメイン)を複数見つけたが、記事ページではリダイレクトが効いているので放置でいいと思っていた。次のページで2011年にはすでに存在していたとわかるが、顕著な被害報告はなさそうだったしね。

2015年7月20日ごろにブログ運営会社である「はてな」がサーバーの設定を調整したようで、はてなブログの記事を「redo.me.uk」で表示させようとしても「403 Forbidden」エラーになるようになった。これを受けて、その内にはてなが「appspot.comのサブドメイン」の対策をすると思っていた。

しかし、親友の次のページを見て悠長にしてられないと思った。

状況:コピーのされ具合

2015年7月26日18:00現在、Googleで「site:appspot.com hapilaki.hateblo.jp」と検索した結果は下図のとおり。

あなたのブログも同じ要領でコピーのされ具合を確認できるよ。

分析および理論上可能な対策

すでに上述している下記ページと概ね同じなのでここでは説明を割愛する。リンク先で詳細を確認できる。

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

一点だけ付け加えるとすれば、サブドメインがいろいろあることだね。たとえば次のとおり。

  • abhorsen009.appspot.com
  • above-and.appspot.com
  • ale-bottoni-pserver.appspot.com
  • amort141.appspot.com
  • ba.amx.redirectit.itelcel.com.descargas-argim.appspot.com
  • freeporoxy.appspot.com
  • hfmapplication.appspot.com
  • norswell.appspot.com
  • open-hidden-sites.appspot.com
  • psjimi.appspot.com
  • servergreat.appspot.com
  • shahmehulv.appspot.com
  • star-800.appspot.com
  • th3proily.appspot.com
  • www.g0i0q5b8.appspot.com
  • zmezk2.appspot.com

この点を考慮して対策を立てた。

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

呪文:JavaScriptコード

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

<script>
/*
 * Redirect from Pakuri Site v1.0.0
 * Date: 2015-07-26
 * Copyright (c) 2015 http://hapilaki.hateblo.jp/
 * Released under the MIT license:
 * http://opensource.org/licenses/mit-license.php
 */
;
var myDomain='hapilaki.hateblo.jp';
if(document.domain!=myDomain) {
  var pakuriUrl=document.URL;
  var checkUrl=pakuriUrl.indexOf(myDomain);
  if(checkUrl==-1) {
    location.replace('http://'+myDomain);
  }else{
    var splitUrl=pakuriUrl.split(myDomain);
    location.replace('http://'+myDomain+splitUrl[1]);
  }
}
</script>

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

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

ただし安心はできない。今後、上記コード部分を改変して無効化してくるかもしれない。一時しのぎのコードで終わる場合も十分にありえる。

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

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

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

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

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

「redo.me.uk」対策で作成したコードだが、他のパクリサイトにも有効なので再掲しておく。

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

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

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

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

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

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

まとめおよび所感

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

スペシャルサンクス:

てすとてすと