宿泊予約サイトやフライト予約サイトなどで宿泊先や飛行機の搭乗券を検索している時、検索候補の横に小さく「今あなた以外の○○人が同じページを見ています」といったメッセージが表示されることがあります。海外の旅行予約サイトであるOneTravelでは、表示されているこの人数がページへのリアルタイムな同時接続数ではなく、実は単なるランダムの数字だったことをセキュリティ研究者のOphir Harpaz氏が発見しました。

Harpaz氏がOneTravelで飛行機の搭乗券を予約しようとした時、予約購入を急がせるためか、「38人がこの搭乗券をチェックしています」と表示されたとのこと。「38人もチェックしているの?!」とHarpaz氏は焦ってしまったものの、38人もの人がこの搭乗券をチェックしていることに逆に疑問を抱いたそうです。



そこで、この人数はどうやって取得されているのかをHarpaz氏が確認したところ、「38」に当たる要素のクラス名が「view_notification_random」になっていることが判明。



さらにHarpaz氏がChromeのデベロッパーツールを使ってソースコードをチェックすると、JavaScriptで以下のような部分を発見。完全に28から44までの数字がランダムに生成され、それが表示されているだけだったことが判明しました。つまり、One Travelの「○○人がこの搭乗券をチェックしています」という部分は全くのウソであり、ユーザーにフライトの予約を急がせるためのものだったというわけです。



Harpaz氏のツイートに対して、やはりこのやり方は違法なのではないか?という声が多く挙がっています。

「アメリカではどうなるのか分かりませんが、EUではOneTravelは消費者へ詐欺を働いたとして罰則を科せられます」



「おそらく開発者もこのやり方に同意しかねているから、わざとソースコードを隠していないのだろう」と、サイト開発者に同情する声もありました。



一方で、「Math.random()は暗号に使用可能な安全性がありません。私ならCrypto.getRandomValues()を使います」と、乱数生成のコードにダメ出しをする人もいました。