コピーサイトにチクリと一刺し反撃する対抗スクリプト
昨日今日と雨が続いて走れません。暇なのでちょっと思い出した件を片付けることにしました。先日、私のブログを丸ごとコピーしているサイトを見つけました。ブログはネットに公開されているわけですから、悪意がある場合はどうしようもないかな〜と思っていましたが、やっぱり気持ち悪いです。特にGoogleの検索結果にしっかり出るような場合もあり、間違ってそちらに行ってしまう方もいるでしょうから (スペイン語っぽいので明らかにおかしいのですが)。何とか対策したいところです。
いちおうGoogleに削除依頼はしておきましたが、いつになるかわからないし、少々癪に触るので、ちょっと反撃することにしました。
対策方法を編み出すためにサイトに何度かアクセスしてみると、ブログを自動でスクレイピングして記事部分だけ抽出して表示しているようです。私が記事をアップしてからアクセスするとすぐに反映されますから、さすがに人手でやっているわけではないようです。よく作りましたね〜。この自動コピーサイトに対して、対抗手段をいくつか考えました。
対抗手段の案
1. スクリプトで、コピーサイトからのアクセスには記事を警告文に変化させる。
2. cssを使って、不可視属性の警告文を埋め込んでおく。
3. コピーサイトの背景が灰色(本物は白)なので、白文字で警告文を書いておく。
試した結果
2. はvisibility:hiddenを解釈しているようで、警告文は表示されません。
3. はいちおう期待通りの動き。本物サイトは白地に白文字なので見えませんが、コピーサイトでは見えます。でも、データとしては通常通り存在しているので、RSSとかでは警告文がしっかり表示されるでしょう。これでは記事冒頭には使えません。使っても最後に小さくというところでしょう。
1.が本命なのですが、コピーサイトはJavascript部分を除外してテキストだけ読んでいるよう。まあそうでしょうね。うーん、これが使えないと手詰まりです。が、もう少し試したところ、CDATAセクションが読み込み対象になっているようです。OK、この手が使えそうです。
対抗スクリプトは下のスクリーンキャプチャのようにシンプルなもの。こうしておけば、コピーサイト以外からのアクセスなら、冒頭のJavascript(if文)が実行されるので警告文は表示されず、コピーサイトでは、警告文の部分が(Javascriptとしてではなく)CDATAセクションとして読み込まれるので表示される、という仕組みです。まあコピーサイトがCDATAセクションを読み飛ばすようになるまでの命でしょうが、コピーサイトは自動だからしばらくは気がつかないでしょう。それまでは有効ということで。
対抗コード適用前のコピーサイト:元の記事がそのまま表示されるひどい状態。
対抗コード適用後のコピーサイト:警告文に変化!Googleにも反映されづらくなるはず。
ただし、この例では記事自体もJavascriptに埋め込んで表示を制御しましたが、そうするとRSSリーダーなどで表示されない可能性があるので、実際には冒頭に警告文表示するだけにしました。また、他のサイトやサービス経由でも警告文が表示される可能性があるので、適用は、この記事自体とベーグル記事1つ、計2つだけにしています。この記事かこちらの記事を見て、警告文が表示される、あるいは記事が正常に表示されない、などの問題があればコメントいただけると助かります。
本来の対処はGoogleが削除してくれることですので、そちらは気長に待ってみます。
0 件のコメント :
コメントを投稿