Недавно мне потребовалось запустить в обычном браузере встроенное в Telegram веб-приложение, называемое Mini App. Объектом изучения стал самый популярный на данный момент кликер Hamster Kombat. Решением стал скрипт для браузерного расширения TamperMonkey, в котором я реализую объект window.Telegram с подмененным свойством platform
для обхода проверки того, что приложение запускается на мобильном устройстве. Но самым интересным оказалось другое.
В процессе поиска решения я наткнулся на любопытное поведение кликера. На этапе аутентификации фронтенд совершает POST-запрос к https://api.hamsterkombatgame.io/auth/auth-by-telegram-webapp
. В теле запроса, помимо данных пользователя Telegram, необходимых для аутентификации, передается свойство fingerprint
, содержащее хэш идентификатора пользователя, и набор информации, характерный для отпечатка браузера.