スポンサーリンク
iPhone版LINE 5.8.0が公開され、新しい機能が多数追加されました。その中の一つが、URLをトークで送信したときに、そのリンク先ページのタイトルと、サムネイル画像*を表示する機能です。この機能が、どのようなユーザーエージェントで、情報を取りに来ているのか、ちゃんと拒絶できる形式なのか、などが気になったので、調査してみました。
※タイトルなどでは「サムネイル」としましたが、ちょっと違う感がありつつも、イメージしやすいのでそうしました。
目次
スポンサーリンク
URL送信時のページ情報表示機能
調査内容
この記事概要を表示する為に、何らかのアクセスが、サーバーに到達しているはずです。
そこで、それを発見するために、わざと http://did2memo.net/abcdefghijklmn という、他に誰もアクセスし得ない架空のURLをLINE上で送信することにしました。
アクセスログ
当然、記事概要の表示には失敗するのですが、失敗する前に、ページの内容を取りに来たアクセスがありました。
その際のサーバーログがこちらです。
203.104.145.40 - - [08/Dec/2015:00:01:25 +0900] "GET /abcdefghijklmn HTTP/1.1" 404 30896 "-" "facebookexternalhit/1.1"
LINE社からのアクセス
まず最初に確認しておきたいのが、アクセス元です。
IPアドレスについて調べると、次の情報が見つかりました。
- ISP: Techorus Inc.
- Organization: LINE Corporation
- Country: Japan (JP)
(引用元)
このように、LINE社からのアクセスである、ということがわかります。
※「Techorus Inc.」は、LINEの関連会社、NHN comico の子会社で、現在「NHN テコラス株式会社」という名前です。
つまり、トーク本文でのやりとりのうち、貼り付けたURLの情報は、LINE社に一度提供された上で、LINE社が代理でページ情報を取得していることがわかります。
ユーザーエージェント
さて、本当のところ、アクセスログを見て、最初に目を引いたのは、ユーザーエージェントの「facebookexternalhit/1.1」でした。
LINE社からのアクセスのはずが、「facebook」という名前で、アクセスしてきています。
ユーザーエージェントと言えば、多くの場合、ブラウザの情報を登録するところで、ロボットからのアクセスであれば、Googlebot/2.1 や Baiduspider/2.0 のような情報を含み、アクセス元の正体が分かるようになっています。
もちろん、正しく申告しないケースもありますが、このLINEの場合は、「facebookexternalhit/1.1」という、別組織「facebook」の名をかたっています。
よく、「Baidoからのアクセスが嫌だから、ユーザーエージェントを見てブロックする」ということがありますが、今回のアクセスは、「facebook」からのアクセスに見えるため、「facebookなら許可しておこう」と設定をしているサーバーも、このLINEからのアクセスをfacebookからだと思って許可してしまう、という構造です。そしてまた、その効果を狙った上で、LINE社側も設定していると思われます(cf. robots.txt)。
facebookexternalhit/1.1
また、このユーザーエージェントについて調べてみると、「facebookexternalhit/1.1」は、Facebook上でURLをシェアする際に、ページの概要や、画像が取得されるかと思いますが、その際に利用されるもののようです。
参考:WEBサイトのURLがFacebookでシェアorいいねされた場合の挙動(OGP) - Qiita
つまり、今回のLINEのシステムと、目的が共通しています。
したがって、facebookexternalhit/1.1でリクエストを送信することには、facebook相手に返している情報と同じレベル*のものがとれるはずという効果があるわけです。
具体的に、このようなページの概要情報は、OGPという形式でやりとりされるn
このように、facebookのユーザーエージェントに載っかって取得している事が分かりました。
微妙な違い
しかし、アクセスを調べてみると、facebookからのアクセスの場合、ユーザーエージェントは「facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)」となっており、このロボットについての説明ページへのリンクがある(ロボットの良いマナー)のですが(先ほどの参考サイトと一致)、LINE社からのアクセスの場合、ユーザーエージェントは「facebookexternalhit/1.1」のみ、であり、URLが含まれていない、という点が異なります。他社へのURLを含めてしまうのはさすがに危ない、という判断があったのでしょう…
Twitterはどうしてるのか確認
一応、Twitterも似た仕組みを使っているので、OGP取得=facebookexternalhitを使うマナーでもあるのか、と確認してみましたが、投稿後最初にTwitterから来たアクセスには、「Twitterbot/1.0」というユーザーエージェントが指定されていました。
ひとこと
単純なアクセスログだけから、いろいろわかる、というところは、Gunosyでのいろいろを思い出します(もう修正済み)。
- Gunosyユーザーの興味関心情報が外部サイト管理者に漏洩する仕組みと想定される悪用例
- Gunosyの漏洩問題修正による謎のアクセスログ(compute.amazonaws.com、Go 1.1 package http)
- Gunosy社サーバが外部サイト画像取得の際にユーザーエージェントをちゃんと名乗るようになった(GunosyImageProxy v0.0.1)
これらの記事を探していて目に入って思いだしたのですが、そもそもLINE社が指定してくるユーザーエージェントについて、以前こんな記事も書いていました。
得体の知れない大量アクセスが来ていた、という話で、実はLINEからでした、というものです(修正済みか未確認)。
今回の内容がどれだけ良くないことなのか、一般的な共通認識を語るのは難しいのですが、とりあえず「facebookexternalhit」という名前であっても、それ、LINE株式会社からのアクセスかも知れないよ、ということは事実のようです(上記Gunosy記事のように、その後修正される可能性あり)。
関連記事
スポンサーリンク
コメント(0)
新しいコメントを投稿
|HOME|
『はてブボタンに「Error」や「502 Bad Gateway」エラーが出たときのメモ』 OLD >>
スポンサーリンク