コピーサイトを撃退するための方法[WordPress]

シェアしていただけるとうれしいです

先日赤ちゃんが無事生まれた三十路の悪あがき(@30sman_blog)さん。おめでとうございます。とうとうお父さんになりましたね!

その三十路さんが朝から悲痛な叫びをあげていました。


ふむ、三十路さんのブログに載っているURLをブラウザに入力すると、どんなサイトもコピーされて表示されている。新手のコピーサイトなんでしょうか?

対策を考えてみました。

redo.me.ukの目的がわからない

いわゆる「パクリサイト」ではないかと思われるサイトなんですけども、それにしても何かおかしいです。

というか、インターネット上に公開されているWebページであれば、どんなページでもredo.me.ukに表示されてしまいます。グーグルだろうがヤフーだろうが表示されています。

実はこれ、比較的簡単に実装できます。プログラムの知識があれば誰にでも実装が可能です。例えば、WordPressでも使われているPHPで次のように書いてWebサーバーにアップロードすればいいです。

PHPの教科書に載っていそうなサンプルコード。実際のredo.me.ukでは、読み込んだHTMLのソースを書き換えているので、ソースコードはもっと複雑になるとおもわれます。CSSや画像などをオリジナルのサイトから読み込ませるために、リンク先に修正を加えているはずです。

このプログラム、
redo.me.uk/ocxbn/(WebページのURL)
にアクセスすれば動くので、どんなページでもredo.me.ukのサイトで表示されることになります。
別にこれだけだと「気持ち悪いなぁ」で済むのですが、実害が出てしまっていることが問題だです

@30sman_blogさんの記事によれば、redo.me.ukで表示されているWebページがGoogleにインデックスされてしまっているらしいです。これではオリジナルのWebページの評価が落ちてしまいかねません。

ちなみに、Googleにインデックスされているかどうかは、下記で検索をかければわかります。

site:http://redo.me.uk/ocxbn/(WebサイトのURL)

幸いにしてぼくのブログはインデックスされていませんでしたが、インデックスされてしまっているサイトのオーナーはできれば早く対処をしたいところです。

アクセス制御してみる

どんなサイトも表示されるということは、おそらくユーザーがアクセスした時にサイトの内容を取ってきて、自分のサイトに表示させているのではないか?と考えました。

パクリサイトからのアクセスを制限してやればいいのではないかと思いつき、いろいろ試してみたのがこちらです。

アクセス制御はWebサーバーにApacheというアプリケーションを使っていれば「.htaccess」というファイルでできます。たいていのレンタルサーバーはApacheを使っているから、大半の人は下記の対策を試すことができるはずです。

FTPのクライアントソフトで自分のサイトに接続すると、Webのドキュメントルート(一番上の階層のフォルダ)に「.htaccess」というファイルがあります。これをダウンロードして編集を加えて、アップロードします。気をつけて欲しいのは、編集の仕方を間違えると、サイトにアクセスできなくなってしまうということです。必ずダウンロードした.htaccessはバックアップを取っておいて、おかしくなってもすぐに元に戻せるようにしておいてください。

もちろん、自己責任でおねがいします。

リファラーでアクセスを制御する

三十路さんが言うパクリサイトが、アクセスのあるたびにサイトのコンテンツをコピーしているのであれば、リファラ(アクセス元)は、パクリサイトになるはずです。そこで、リファラがredo.me.ukのときは404 Not Foundを返却するようにしてみました。

もともとの.htaccessに「RewriteEngine On」が記述してあれば、そのすぐ下の行に書けばOK。以下同じ。
これを試してみたのだけれど、なぜか、リファラが取得できなくて、うまくいきません。
PHPで、

としてみたのだけれど、値は「NULL」。つまり、空っぽ。なんか根本的に間違ってる?

ホスト名でアクセスを制御する

ちゃうちゃう、リファラとちゃう。パクリサイトがクライアントになっているんやわ。ホスト名がredo.me.ukからの接続を拒否してみました。

なぜかホスト名ではうまくいかない。

IPアドレスでアクセスを制御する

ホスト名で拒否できないのであれば、IPアドレスで拒否してみたらどうだとやってみたのがこちら。

ちなみにIPアドレスの調べ方は、コマンドプロンプトを立ち上げて、nslookupと入力。ホスト名を入力すると、IPアドレスが表示されます。

という具合。

2015/07/10追記
redo.me.ukのIPアドレスは91.208.99.12ですが、Webのアクセスログで調べると、実際にアクセスしてきているのは91.208.99.2のようです。以下、91.208.99.2に修正します。
91.208.99.2を逆引きしたホスト名がredo.me.ukでなかったから、ホスト名でのアクセス制御ができなかったようですな。

IPアドレスで制限をかけるとうまく行きました。403 Forbiddenが返ってきます。

IPアドレスを指定するといろいろできる

IPアドレスを指定してやればいろいろできそうなので、いろいろやってみました。

404 Not Foundを返却

404 Not Found

500 Internal Server Errorを返却

500 Internal Server Error

503 Service Temporarily Unavailableを返却

503 Service Temporarily Unavailable

三十路さんの情報によると、パクリサイトのURLがGoogleにインデックスされているということなので、Googleさんに正確に伝えるためには404 Not Foundを返却するようにしたほうが良いでしょう。

RSSにも対応できる

パクリサイトが自身のブログのRSSを取得して表示させているなら、上記の方法が有効ではないでしょうか?PHPだろうがHTMLだろうが、RSSだろうが、該当のIPアドレスからのアクセスは制限されるからです。

複数のパクリサイトを登録するときは、

「RewriteCond」を複数行に書き、[OR]フラグで、「OR条件」であることを設定します。
最後の行には[OR]フラグは必要ない。

パクリサイトに狙われている方、一度お試しいただけませんか?

2015/07/10 追記(具体的な.htaccessの記述方法)

わかりにくいというお声がありましたので、実際のぼくの.htaccessを一部晒します。
編集前

編集後

こんな感じでわかります?
「# BEGIN WordPress~# END WordPress」の外側に書くのがミソです。この部分はWordPressの設定を変えると書き換えられてしまうからです。中に書くと、せっかく書いた設定が消えてしまう可能性があります。

2015/07/12追記(IPアドレスが違う?)

ただし、気になるのが、redo.me.ukのIPアドレスが 91.208.99.12であるのにもかかわらず、Webサーバーのアクセスログをチェックしたら 91.208.99.2からアクセスがあった点です。
91.208.99.12からのアクセスをブロックしてもredo.me.ukで表示されていたので「おかしいな?」と思ってWebサーバーのアクセスログを確認してみたわけです。

この件については、@mini0miniblogさんもTwitterで教えてくださって、


91.208.99.13でないとうまくいかなかったとの事でした。

ネットでこの91.208.99.xxのネットワークについて調べたところ、イギリスのWebホスティング会社の所有です。おそらく、redo.me.ukもその会社でホスティングしているのだろうと思われます。プロバイダや携帯電話会社が所有しているIPアドレスでないのであれば、近辺のIPアドレスをひっくるめてブロックしても問題はないと考えました。

そこで、

と書き換えてみました。
この設定だと、91.208.99.0~91.208.99.255までのIPアドレスの範囲をすべてブロックしてくれます。redo.me.ukが複数のIPアドレスを使用してパクっていたとしても、これで対応できると考えます。

参考

上記の記載だと、redo.me.uk以外のIPアドレスからのアクセスもブロックしてしまいます。プロバイダや携帯電話会社のIPアドレスでないから「まぁいいだろう」と判断しましたが、本来だとあまり美しくないですね。

redo.me.ukのIPアドレスを調べるには、コマンドプロンプトを立ち上げて、「nslookup」とコマンドを打ちます。

これで、redo.me.ukのIPアドレスが91.208.99.12であることがわかるわけですが、さらに91.208.99.12を入力すると、

redo.me.ukの本名は「linux.gridhost.co.uk」であることがわかります。
このことから、どうやらredo.me.ukはgridhost.co.ukというドメインのネットワークで運営されているのではないかと推測できます。

ということは、gridhost.co.ukというドメインからのアクセスをブロックできれば効率よくredo.me.ukをブロックできるのではないでしょうか?
そこで、

と書いてみましたが、うまくいきませんでした。

「REMOTE_HOST」には、アクセス元のホスト名、今回で言えば、「linux.gridhost.co.uk」などの値が入るはずなのですが、どうやら取得できていないようです。調べてみると、Apacheの大元の設定ファイル「httpd.conf」で「HostnameLookups」という設定が「On」になっていないとホスト名が取得できないらしいです。

アクセスがあるたびにDNSサーバーに対してホスト名の問い合わせを行うのでサーバーの負担が大きくなるため、レンタルサーバーでは無効にしているところが多いようです。

場合によっては「HostnameLookups On」になっているレンタルサーバーもあるかもしれないから、一度この設定も試してみてください。

2015/07/13 追記(IPアドレスの書き方を少し変えました)

IPアドレスの書き方を少し変えました。「191.208.99.xxx」のIPアドレスにもヒットしてしまうからです。

変更前

変更後

記事中の記載はすべて下の書き方に変えています。

.htaccessが使えない時はどうする?

レンタルサーバーによっては、.htaccessが編集できるようになっていなかったり、編集できたとしてもRewriteEngine Onにできないこともあるようです。そもそも、はてなブログなどのブログサービスでは.htaccessを編集することができません。

その場合はredo.me.ukを野放しにしておかないとしかたがないのか?

いや、とりあえず、redo.me.ukのサイトに自分のサイトを表示させないようにはできます。

最近のブログサービスはHTMLのカスタマイズが出来るはずだから、<head>~</head>の間に下記のjavascriptのコードを埋め込めば、redo.me.ukで自分のサイトが表示されるとredo.me.ukのトップページにジャンプします。

Googleのインデックスがどうなるかは分かりませんが、自分のサイトがredo.me.ukに表示はされなくて済みます。

こんなふうに書けば、再び自分のサイトに戻すことも可能です。

いわゆる「画像直リンク」、画像の複製は固くお断りいたします。
スポンサーリンク

シェアしていただけるとうれしいです

フォローよろしくお願いします

関連記事