Как Studcheck проверяет аккаунт Roblox
Здесь описан весь механизм. Он короткий, потому что в нём мало частей — и в этом суть: чем меньше движущихся деталей у инструмента проверки, тем меньше он может сделать не так с вашим аккаунтом.
Процесс по шагам
Вы отправляете боту <code>/proverit</code>. Он отвечает одной кнопкой, которая открывает адрес на <code>apis.roblox.com</code> — домене Roblox, а не нашем.
Roblox показывает экран согласия с точным списком того, что запрашивает Studcheck. Вы подтверждаете или нет. Если да — Roblox отправляет боту короткоживущий код, который бот на сервере обменивает на токен. Затем бот спрашивает у Roblox, кто вы, и Roblox отвечает.
Этот ответ — ваш id, имя пользователя, отображаемое имя и аватар — и сохраняется вместе с вашим Telegram id. Больше между ними ничего не передаётся.
Два разрешения
Studcheck запрашивает области <code>openid</code> и <code>profile</code>. На экране согласия Roblox они выглядят как <b>Чтение id пользователя</b> и <b>Чтение профиля</b>, оба с низким уровнем риска по оценке Roblox.
Ни одно из них не позволяет боту действовать от вашего имени. Он не может писать, торговать, тратить Robux, вступать в группы, менять настройки или читать что-то приватное. Он может узнать, кто вы — и только. Инструмент проверки, просящий больше, должен настораживать.
Чего бот никогда не видит
<b>Ваш пароль.</b> Вы вводите его на сайте Roblox, если ещё не вошли. К нам он не попадает, и в боте нет поля для него.
<b>Ваш cookie <code>.ROBLOSECURITY</code>.</b> Это сессионный токен, с которым можно действовать от вашего имени. OAuth существует именно для того, чтобы инструментам он никогда не был нужен.
<b>Ничего, что вы не подтвердили.</b> Roblox контролирует области на своей стороне. Даже если бы бот попросил больше, Roblox не ответил бы.
Почему это лучше кода в профиле
Старый способ — вставить код в описание профиля Roblox, чтобы бот считал его. Работает, но приучает игроков вставлять незнакомые строки в профиль — а на этой привычке и держатся угонщики аккаунтов. И доказывает лишь то, что в тот момент вы могли редактировать профиль.
OAuth доказывает это Roblox, а не нам. Roblox сам подтверждает личность, и бот не трогает ваш профиль.
Подписанное состояние
Создавая ссылку для входа, бот включает в неё подписанный токен, привязывающий запрос к вашему Telegram id и действующий пятнадцать минут. Подпись проверяется за постоянное время, когда Roblox возвращает вас обратно.
Именно это не даёт кому-то привязать свой аккаунт Roblox к <em>вашему</em> Telegram id или повторно использовать старую ссылку. Для вас это невидимо — так и должно быть.
После проверки
Проверка — это снимок, поэтому бот перепроверяет. Каждый час он спрашивает у Roblox, не забанены ли проверенные аккаунты, и удаляет участников, чьи аккаунты забанены. Имена обновляются при команде <code>/ktoya</code>, поскольку они могут меняться; сама привязка держится на вашем Roblox id, который не меняется.
Отправьте <code>/otvyazat</code> — и привязка удаляется сразу. Без периода ожидания и без подтверждения по почте, потому что почты у нас нет.
Что хранится
Одна запись на привязку: ваш Telegram id, Roblox id, имя пользователя, отображаемое имя и адрес аватара, которые вернул Roblox, и дата. <a href="/privacy">Страница конфиденциальности</a> перечисляет всё, включая то, что добавляют модераторы и что мы храним по вине владельцев групп.
Токены доступа не хранятся. Бот использует токен один раз, чтобы спросить, кто вы, и отбрасывает его.
Чего это не доказывает
OAuth доказывает, что вы управляли этим аккаунтом Roblox в момент входа. Он не может доказать, что аккаунт с тех пор не продан, не передан и не украден, и ничего не говорит о том, заслуживаете ли вы доверия. Модераторам стоит считать это одним сильным сигналом, а не гарантией — для того и существует ежечасная перепроверка.
Если вы найдёте в этом описании что-то, что не совпадает с поведением бота, — это ошибка, и мы хотим о ней знать.