Redo.Me (redo.me.uk) のコピー対策としてアクセス制限をする

Redo.Me からのアクセスは 403 Forbidden を返すようにした。サイトや記事がほぼ丸々 redo.me.uk ドメインで公開され、さらにはそれが検索エンジンにインデックスされてしまう可能性があるから。その挙動はコピーサイト同様です。つまりコピーサイト同様の実害が生じるかもしれない。

目次
  1. Redo.Me とは?
  2. コピーの確認方法
  3. 問題点
    1. 同内容のサイトがインデックスされる
    2. アクセス解析のコードもコピーされる
    3. 広告も丸ごとコピーして表示される
  4. 対策
    1. .htaccess で制限
    2. PHP で制限
  5. 参考サイト
  6. 短縮 URL の怪

Redo.Me とは?

トップページを見る限りは、Redo.Me (redo.me.uk) は短縮 URL サービスのようです。アドレスを短縮するだけであれば、オリジナルのページへリダイレクトされるリンクが生成されます。よくある短縮 URL の振る舞いです。

しかし、置換ルールを設定すると動作が変わります。リダイレクトは行われず、Redo.Me がオリジナルのサイトを引っ張ってくる形で公開される。内部リンクも書き変わる。生成した短縮 URL にオリジナルサイトのアドレスが組み合わさる格好になり、そのリンクから遷移した場合もリダイレクトは行われません。

置換ルールはオプションです。例えば、Replace「foo」with「bar」と入力すると、オリジナルサイトにある「foo」と表記されていたテキストは、全て「bar」に置き換えられるというもの (ただしあくまでもテキストが対象であり、a 要素の href 属性を置換するといった使い方、つまりは広告の ID をいじるようなことはできないようです)。

書き変えられた内部リンクからのアクセス時にも置換ルールは生きています。そしてこれは内部リンクに限らず、まったく関係ないサイトにもルールを適用できます。

Once you have a short code you can apply the same rules to other sites by adding another site to the end of the URL we provide.

置換ルールを設けた短縮 URL に、適用したいサイトのアドレスを追加するだけ。短縮された元 URL は無視されます。短縮 URL と置換ルールの適用。Google にインデックスされてしまっているのは、そのようにして生成されたページです。

コピーの確認方法

問題となっているのは ocxbn というショートコード。このコードで生成されたコピーが Google にインデックスされているかどうかは、site 演算子を使うと簡単に調べることができます。

例えば http://example.com なら下のように入力します。

site:redo.me.uk/ocxbn/example.com

問題点

この状況は色々とうまくありません。

同内容のサイトがインデックスされる

検索エンジンの評価に影響します。Google はコンテンツの品質評価に熱心です。ミラーサイトやコピーサイトなどの嫌疑がかかるかもしれない。しかもオリジナル側がコピーだと判断されるかもしれない。

アクセス解析のコードもコピーされる

ソースを丸々コピーするため、Googleアナリティクスのようなタイプのアクセス解析も当然機能します。集計データにはコピーサイトへのアクセスも反映されてしまいます。

広告も丸ごとコピーして表示される

申請サイト以外は広告を貼ってはいけない。そのような規約のある ASP だと問題となることでしょう。例えば Amazon アソシエイトがそれです。

対策

ではどうすれば良いのか。目下のところは、Redo.Me のアクセスを制限して様子を見ることにしました。

件の置換ルール付き URL にアクセスすると、オリジナルサイトは特定の IP からリクエストを受けます。何度か試したところ、リモートアドレスは全て 91.208.99.2 となっていました。逆引きすると outgoing2.gridhost.co.uk。ネット上の情報によれば複数の IP が使われているそうです。

91.208.99.2
outgoing2.gridhost.co.uk
91.208.99.12
linux.gridhost.co.uk
91.208.99.13
windows.gridhost.co.uk

ということで、91.208.99.x か gridhost.co.uk で制限をかけることにします。

以下は、該当するアクセスにはコンテンツを表示せず、403 Forbidden を返す方法です。もちろんステータスコードまではコピーしてくれませんが、Google はソフト 404 を (ハード) 404 として扱います。

.htaccess で制限

普段から .htaccess でアクセス制限をしている人も多いことでしょう。以下はサンプルです。前から 3 つ目の数字までを記述することで 91.208.99.x を対象にできます。

Order Allow,Deny
Allow from all
Deny from 91.208.99

HostnameLookups ディレクティブを On にしている場合はホストで拒否が可能です。

IP をホストに逆引きし、そのホストを IP に順引き後、両者が一致かつホストが該当するかどうかという流れになります。それなりのコストがありますし、IP の範囲が分かっている今回は遠慮した方がよいでしょう。なお、HostnameLookups が Off であってもホストを記述した場合は同じ手続きが行われます。

Order Allow,Deny
Allow from all
Deny from gridhost.co.uk

PHP で制限

ブログを PHP で構築しているなら、そちら側で出力を控えるのも良いでしょう。サイト本体へのアクセスさえ制限できればいいという場合です。以下は、Redo.Me の他にも制限サイトを追加する想定でのサンプルです。

$block = array(
  '\.gridhost\.co\.uk$',
  'example\.com$'
);
$pattern = '/'.implode('|', $block).'/';
$guest = gethostbyaddr($_SERVER['REMOTE_ADDR']);
if (preg_match($pattern, $guest)){
  header('HTTP/1.1 403 Forbidden');
  exit;
}

参考サイト

短縮 URL の怪

検索エンジンのインデックス状況をみると、redo.me.uk/ocxbn/ のアドレスで軒並み登録されています。先述したように、この部分は短縮 URL です。そして、以降に続けられるアドレスに対して置換ルールが適用されるという仕組みでした。置換ルールが未設定でもアドレスは有効です。

ふと思いついて、件の短縮 URL にアクセスしてみました。どこかに辿り着くはずだ。すると、いかがわしい広告満載の別の短縮 URL に飛ばされました。これはひたすら飛ばされてひたすらいかがわしい広告が表示されるパターンか。そう思いましたが次でゴール。「サーバが見つかりませんでした」。いかにもグロ画像を想起させるホスト名とパス名でしたが、調べてみるとそういうサイトではありませんでした。

なぜこの短縮 URL によるアドレスが多くインデックスされているのか。どうして日本のサイトを沢山ターゲットにしているのか。短縮 URL を直接検索すると通販王国がヒットすることも含め、謎は深まるばかりです。

今日学んだこと

Redo.Me というサイトのこと。検索エンジンにインデックスされないように (されたとしても問題ないように) するための対策。