数日前に書いた記事『公開前のスターウォーズを見た米国男性死去—アメリカのスターウォーズ人気』が今までで一番読んで頂いた記事になりそうです。

ツイートやフェイスブックでのシェアもして頂いてとても嬉しいです。「どんな人がツイートしてくれたのかな?」と見ていたら、リンク形式が見慣れないアドレスになっているツイートが紛れていました。違法ではないのでしょうが迷惑度が高いサービスで、登録するとツイートするときのURLが書き換えられたり、勝手にツイートされるそうです。

サイト側の対策をしようとしてみましたが、とりあえず力尽きました。

Linkis.com / ln.is

僕が気に食わないなと思ったリンクは、「ln.is」が頭に付けられたアドレスになっていました。

ln.isがついたリンクln.isがついたリンク

TwitterのLinkis.comリンクを踏むと

このln.isリンクをクリックすると

余分なサイドバーが勝手につきます余分なサイドバーが勝手につきます

上記のような画面が開きます。余分なサイドバーが付いているのと、目立つところに「ツイッターにログインしよう」というようなリンクが大きく表示されます。

表示されたリンクでTwitter連携

これをクリックしてTwitter認証してしまうと、

  • ツイートするときに勝手にURLが改変される
  • 勝手にリツイートされる(?らしい)

ということが起こります。結構厄介です。解除するにはツイッターの設定から「アプリ連携」を開き、連携を解除すれば良いようですが、それだけで完全に綺麗になるのかは不明です。

対策方法が【アナタのURLは開けない?】ln.is/で始まるURLのブラウズ動作を調べてみた【Linkis】』(Togetter)などにまとめられています。

ハッキングされたかと思った!

この表示を見たとき、サイトにマルウェアが仕込まれたのかと思いました。良く見ると、リンクがおかしいのと、表示されているURLが「http://linkis.com/ruralpostdoc.com/ .....」なので自分のドメインではありません。

Linkis.comの何が怖いかというと、少なくとも未登録ユーザーの見えるところに余分な広告などがないということで、一見悪くないようですがどこから運営費と収益を稼いでいるかというところです。急に、スパムリンク・マルウェアだらけのページに変わったり、個人情報を抜いて売っている、などの前例があるように思いますので、使わないに越した事はない気がします。

サイト運営側的に

明らかに当サイトサイトポリシーには反しているので、linkis.com経由のリンクは何とかしたいところですが、折角ツイートしていただいたものが見えなくなるのも忍びない・・・。と板ばさみになります。

Linkis.com経由の表示は、

  1. リンクが書き換えられている
  2. サイト上のスクリプトが書き換えられている(かもしれない)
  3. ページにcanonicalタグが付いている
  4. URLが独自エンコードされていて、同じページにツイートしても毎回変わる

とかなり厄介です。

  1. リンクが書き換えられていることで、サイト内のリンクをたどってもlinkis.comから出られないと思います。(自分は認証しなかったので確認はできませんでした)
  2. 有害スクリプトに書き換わっている可能性も否定できない(アドセンスなどはどうなっているのでしょう?アフィリエイトリンクは無効になるはずです。)
  3. フレーム内にコンテンツが表示されていますが、親フレームにcanonicalタグが付いてしまっています。Googleがどうやって判断するか知りませんが、以前canonicalタグのバグで一切インデックスされなかった嫌な思い出があるので、これは避けたいです。
  4. URLが変わっていくので、手動でGoogleにコピーコンテンツを報告するのは無理。

という理由からです。

数時間格闘して、とりあえずできる範囲の対策を練りましたが、一時撤退です。ついでに、サイト開設直後からあった「キッズ・グー」からの同様のリンクも何とかしたいと思いましたが、こちらはどうにもなりませんでした。(完全にブロックすることはできますが、そこまでするのはどうかとも思い、以前から放置していました)

この手のリンク改変などを「クリックジャッキング」と呼ぶようです。インターネットの世界は知らないことだらけです。

 .htaccessとテンプレート編集

今回とりあえず試したものの採用には至らなかったものは、

  • Content-Security-Policy
    • Firefoxメインで開発されたタグです。古いバージョンのX-Content-Security-Policyしか働かなかったり、例外規定が働かなかったり、ブラウザで挙動が違います。そして、Linkis.comはこの設定を完全に無視してくれました。「キッズ・グー」は再読み込み(サイト情報の取得しなおし)すると反映されます。
  • X-Frame-Options
    • .htaccessで、外部からの読み込みを停止させるものです。現行のブラウザはすべて対応しているはずですが、Chromeなどでは例外が作れないので、「キッズ・グー」も含めて遮断されてしまいます。これは本意ではありません。

です。Content-Security-Policyはともかく、X-Frame-OptionsはIPAで推奨されています。が、完全に遮断しようという気にはまだなれなかったので見送りました。上手く設定できれば大丈夫なのかもしれません。

採用した対策は、Linkis.comはリファラを出してくれるのでサイト内で転送して専用ページを表示させることです。「キッズ・グー」はリファラを出さないのと、URLを無理やり書き換えさせると表示できなくなるようなので、とりあえず見送りました。

転送先で試した対策は、

  • OGPとTwitterCardの書き換え(画像と文章の一部書き換え)
  • サイト上に大きく表示
  • テンプレートを空っぽに
  • 本文は表示させない

の4つです。

OGP/TwitterCardは、Linkis.comがサイト情報を抜き取るときに、元のページにあったOGP/Twitterを取得し、一部改変して(og:descriptionが変わっていました)親フレームに表示させているようです。ln.isで新しい記事をシェアされたときに、僕が書き換えたほうのTwitterCardが表示されるのか、正規URLのものが表示されるのか、わかりません。

ln.isを意図せずに連携させてしまった方には、シェアされた画像とサイト上がおかしくならないと気づいてもらえませんので、できれば異常なシェア画面になってもらいたいところですが、Linkis.comは一旦ツイートなりシェアしたものを取得して削除し、ln.isをつけて再度ツイート・シェアする仕組みになっているので、正規URLから作られたカード情報を抜き取るのではないかと思います。

サイトに警告を表示するようにしました。こちらはすぐに反映されました。また、テンプレートの表示をほとんど空にして、できるだけ被害が及ばないように・・・。

何か、良い方法はあるのでしょうか?

December 2017
Mo Tu We Th Fr Sa Su
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

ログイン(DISQUS/Facebook/Twitter/Google)なしでもコメントでき、その場合管理人の承認後表示されます。