旅行予約サイトの「今あなた以外に○○人が見ています」はウソだったことが判明
宿泊予約サイトやフライト予約サイトなどで宿泊先や飛行機の搭乗券を検索している時、検索候補の横に小さく「今あなた以外の○○人が同じページを見ています」といったメッセージが表示されることがあります。海外の旅行予約サイトであるOneTravelでは、表示されているこの人数がページへのリアルタイムな同時接続数ではなく、実は単なるランダムの数字だったことをセキュリティ研究者のOphir Harpaz氏が発見しました。
Harpaz氏がOneTravelで飛行機の搭乗券を予約しようとした時、予約購入を急がせるためか、「38人がこの搭乗券をチェックしています」と表示されたとのこと。「38人もチェックしているの?!」とHarpaz氏は焦ってしまったものの、38人もの人がこの搭乗券をチェックしていることに逆に疑問を抱いたそうです。
[1/4] Ok this is really funny, check this out.
— Ophir Harpaz (@OphirHarpaz) October 16, 2019
I was in the process of booking a flight via @OneTravel. Trying to make me book ASAP, they claimed: "38 people are looking at this flight".
Whoa, 38 is a lot, I have to hurry up. But first I have to check how they came up with 38 >> pic.twitter.com/UaGhaiCQrR
そこで、この人数はどうやって取得されているのかをHarpaz氏が確認したところ、「38」に当たる要素のクラス名が「view_notification_random」になっていることが判明。
[2/4] Right click and a quick "inspect" on the number, I found out the element's class name is "view_notification_random".
— Ophir Harpaz (@OphirHarpaz) October 16, 2019
Awesome variable naming guys.
So you're _randomly_ trying to freak me out. Alright >> pic.twitter.com/xnL3hsZLP5
さらにHarpaz氏がChromeのデベロッパーツールを使ってソースコードをチェックすると、JavaScriptで以下のような部分を発見。完全に28から44までの数字がランダムに生成され、それが表示されているだけだったことが判明しました。つまり、One Travelの「○○人がこの搭乗券をチェックしています」という部分は全くのウソであり、ユーザーにフライトの予約を急がせるためのものだったというわけです。
[3/4] So what's your sophisticated pseudo-random algorithm?
— Ophir Harpaz (@OphirHarpaz) October 16, 2019
Apparently, OneTravel are choosing a number between 28 and 45.
Because as you all know, based on serious psychological research, these numbers tend to make people book their flights fast #sarcasm #not42 >> pic.twitter.com/r2IrYhxr28
Harpaz氏のツイートに対して、やはりこのやり方は違法なのではないか?という声が多く挙がっています。
「アメリカではどうなるのか分かりませんが、EUではOneTravelは消費者へ詐欺を働いたとして罰則を科せられます」
I do not know the laws in the US, but within the EU this company would get a penalty for consumer deception.
— Christopher Dosin (@christopherdosi) October 18, 2019
「おそらく開発者もこのやり方に同意しかねているから、わざとソースコードを隠していないのだろう」と、サイト開発者に同情する声もありました。
Maybe the developers don’t agree with the practice so they are not putting effort in hiding it ????
— David da Silva @ LDN???????? (@dasilvacontin) October 18, 2019
一方で、「Math.random()は暗号に使用可能な安全性がありません。私ならCrypto.getRandomValues()を使います」と、乱数生成のコードにダメ出しをする人もいました。
Math.random() isn't cryptographically safe. I'd rather use Crypto.getRandomValues() ????
— cl1pp0 (@cl1pp0) October 19, 2019
・関連記事
エミレーツ航空の予約システムに存在する致命的なセキュリティ問題が発覚 - GIGAZINE
Airbnbの開発チームが語るウェブサイトのAMP対応を諦めた理由 - GIGAZINE
成功した機械学習モデル150個を分析してわかったことまとめ、Booking.comの場合 - GIGAZINE
「Airbnb」がホテル業界参入か、ホテル直前予約サービス「HotelTonight」を買収 - GIGAZINE
旅先の詐欺の被害情報を共有できるウェブサービス「Most Common Travel Scams」レビュー - GIGAZINE
・関連コンテンツ