На данный момент имеется плагин дополнительной защиты аккаунтов — PIN-код. Если у игрока установлен PIN-код, то при входе в игру его телепортирует в специальный мир, где стоит приват WG, которые не позволяет делать практически ничего кроме как ввести PIN-код и у него есть 15 секунд, чтобы ввести PIN-code иначе он будет кикнут. так же там реализована система возвращения на последнюю локацию, от куда игрок был телепортирован из мира для ввода PIN-кода.
Я хочу это сделать ввиде мода, и исключить этот ненужный контроль локаций, но для этого мне нужно полностью исключить взаимодействие игрока с миром и мира с игроком, поэтому меня возник ряд вопросов:
Игрок входит на сервер, сервер проверяет, установлен ли у этого игрока PIN-код и если да — посылает ему пакет, который прикажет моду на стороне клиента показать GUI для ввода.
Вопрос #1
Пакет был принят клиентом, требуется показать GUI для ввода PIN-кода, но такое, чтобы его нельзя было закрыть. Как это сделать?
Вопрос #2
Майнкрафт Шаролёт из смешарики ПИН-КОД
Пакет был отправлен клиенту, но ничего в ответ не приходит. Конечно возможно игрок просто вышел/был кикнут, а может он всё таки как то смог закрыть GUI. К примеру если игрок закрыл GUI можно отправить пакет о том, что GUI было закрыто и если игрок до сих пор не был авторизован, то кикнуть его. Т.е. предусмотреть момент, если попытаются обойти GUI.
Смысл подобной защиты в том, что пока игрок не подтвердил PIN-код (если у него он конечно установлен) — максимально исключить любые взаимодействия игрока с миром и мира с игроком.
Вопрос #3
Любые дамаги можно отменить — это легко. Еда? Я думаю в Forge есть эвент, где меняется еда и его можно отменить. Ходить игрок вроде как не сможет, так как у него будет включён GUI. Что ещё? Смысл в том, чтобы предусмотреть и отменить любые попытки взаимодействия с игроком.
Так же сюда относится к примеру если игрока начнёт передвигать вода — на стороне клиента слушать событие движения и отменять его, если моду ещё не пришла информация о том, что игрок успешно авторизовался?
Вопрос #4
Пока что думаю.
Tenebrius
1,417 44 593
1. Просто не делай кнопку закрытия, т.е. не обнуляй скрин
2. Если ты хочешь, что бы это GUI сохранялось даже при перезаходе — делай атрибутом или IExtendedEntityProperties’ом, гайдик можешь найти в ресурсах, там по ссылке полный есть.
3. Это не точно, но просто получаемый дамаг делай 0
4. как надумаешь — напишешь)
Фикс: DivineRPG fix latest version
Тяжелый случай.
Prototype
Если игрок нажмёт Esc GUI закроется. Слушать и проверять нажатия кнопок?
GlassSpirit
Если не скажешь ему закрываться на ESC — не закроется.
Prototype
А как ему это сказать?
Icosider
Kotliner
Администратор
3,580 99 655
В keyTyped разрешить только свои бинды
tox1cozZ
aka Agravaine
НАСТОЯЩИЙ РАБОЧИЙ КОДОВЫЙ ЗАМОК В МАЙНКРАФТЕ! СЕКРЕТНЫЕ ПОСТРОЙКИ БЕЗ МОДОВ ТУТОРИАЛ ОБЗОР!
8,429 597 2,870
1. Да, можно просто убрать keyTyped. Но лучше все таки в апдейте проверять, что если игрок не залогинен и не открыт гуи ввода пароля — открывать. То есть даже если он как-то его и закроет, то он сразу же снова откроется.
2. Отправь пакет игроку, отсчитывай время. Если через 15 секунд не приходит ответ — он либо не ввел код, либо ушел с сервера. Ну и просто кикать.
hohserg
7,067 321 1,491
Смысл подобной защиты в том, что пока игрок не подтвердил PIN-код (если у него он конечно установлен) — максимально исключить любые взаимодействия игрока с миром и мира с игроком.
Неправильно делать это так. Игрок может взаимодействовать с миром с открытым гуи(естественно, с доп модификациями клиента)
Нужно отменять события взаимодействия, а также не давать игроку смещаться, пока клиент не отправил пакет с корректным пином
Новая рандомная ава топовая) Ender’sMagic 1.4b — УРААА!))
Таумкрафт 6 — ураа!
Пишу на Scala
Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
Test BB-code
JustAGod
1,070 47 403
А давайте так. Заходит игрок на сервер, ему приходит пакет что мол так и так нужно ввести пин-код, потом его кикает с сервера, и тут открывается гуи ввода пин-кода. Когда он жмякает ввод мы снова пытаемся подключится и первым делом отсылаем пакет с введенным пин-кодом, сервер его проверяет и исходя из правильности мы либо возвращаемся к началу либо все ок))
Заказы не принимаю.
Деньги принимаю.
hohserg
7,067 321 1,491
А если у игрока большой пинг или клиент зависает при входе? Он просто будет не успевать отправить пакет с pin-кодом
Новая рандомная ава топовая) Ender’sMagic 1.4b — УРААА!))
Таумкрафт 6 — ураа!
Пишу на Scala
Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
Test BB-code
JustAGod
1,070 47 403
Так или иначе ты отправишь пакет первой партией так что сработать должно)) Можно кикать игрока на второй нетворк тик хотя думаю это не понадобится))
Заказы не принимаю.
Деньги принимаю.
Prototype
Всем привет, знаю, что тема слегка старовата, но всё же она не была закрыта и вопрос не был до конца решен. Собственно вариант выше мне понравился и я хотел бы взяться за его реализацию.
Я попытаюсь наиболее подробно описать то, как я вижу эту систему и те моменты, где у меня возникают вопросы.
1. Мы клиент. Выбрали из списка серверов сервер и нажали подключиться.
2. Мы сервер. Услышали, что входит игрок. Загрузили на него данные из бд, посмотрели, включён ли у него включен пин-код, если да — отправили пакет клиенту с просьбой ввести пин-код и кикнули его.
3. Мы клиент. Нас кикнули и мы вместе с киком получили пакет, в котором нам сказали показать GUI для ввода пин-кода. Мы отметили это в переменной `needShowGui как true` и когда мы услышим на клиенте событие «PlayerLoggedOutEvent» (из-за кика с сервера или я не правильно подобрал событие?) и если переменная `needShowGui == true` покажем GUI для ввода пин-кода. Далее, мы типо введём в GUI пин-код, нажмём кнопку. Сохраним введённый пин-код в переменную, чтобы потом отправить его пакетом на сервер при следующем входе на сервер.
Вот здесь несколько вопросов:
3.1 Цитата: «cнова пытаемся подключится на сервер» — имеется ввиду сам игрок пытается или автоматически модом подключаемся на последний сервер, на который заходили? Если да, то как это сделать и как запомнить сервер, на который последний раз заходили?
3.2 Цитата: «первым делом отсылаем пакет с введенным пин-кодом». На какой стадии это нужно сделать, чтобы это можно было назвать «первым делом»?
К примеру мы решили все вопросы выше и подключаемся на сервер и попутно отправляем пакетом введённый пин-код..
4. Мы сервер. Мы слышим, что игрок входит на сервер и одновременно получаем пакет. Как не запутаться здесь? Как не кикнуть игрока раньше, чем его пакет будет обработан? Идём дальше.
Если же игрок ввёл правильный пин-код, то мы оставляем его в покое и отправляем клиенту информацию о том, что пин-код был успешно введён, чтобы скинуть ту самую переменную `needShowGui`, для того чтобы не вылезло окно GUI для ввода пин-кода при выходе с сервера или просто вручную обнулять её при каждой отправки пакета с пин-кодом на false? Допустим, что разобрались мы ответным пакетом и той переменной. В случае, если пин-код окажется не верный? Снова посылаем пакет с просьбой ввести пароль и кикаем игрока? И так по кругу?
Пока это все вопросы. Что я упустил, что я делаю не правильно? Чем плох этот способ, кроме того, что написали выше? Прошу меня поправить.
Источник: forum.mcmodding.ru
Слив PinPrompt — ⛔️ Двухфакторная аутентификация⛔️ [1.8-1.18) 3.0.2
Ресурс был слит и доступен для скачивания без подписки
PinPrompt — это плагин безопасности, который добавляет на ваш сервер двухфакторную аутентификацию (2FA). Вы можете заставить и/или разрешить игрокам использовать PIN-код для входа в систему, это добавляет дополнительный уровень защиты учетным записям игроков и особенно учетным записям персонала от третьих лиц, которые не знают PIN-код.
Удивительный плагин, который подарит вам уверенность в своих сотрудниках, а также поможет игрокам, использующим общие компьютеры.
- Настройки конфигурации, такие как разрешенные попытки, время входа, тема заголовка, блокировка событий, сообщения, звуки и многое другое!
- Поддержка SQLite и MySQL , синхронизация контактов вашего игрока на нескольких серверах ( сеть Bungeecord ).
- Защита от грубой силы . Ограничьте время, в течение которого игрок должен ввести свой пин-код, максимальное количество попыток, которые у него есть, и даже временно забаньте их за слишком много неправильных попыток.
- API разработчика . Плагин в настоящее время имеет некоторые события API, которые вы можете оживить, если это необходимо. PinCreationEvent, PinBlackListedEvent, PinCorrectEvent и PinIncorrectEvent.
- Изменяемая длина ПИН-кода, до 43 046 721 комбинации ПИН-кодов для использования, взлом которых займет более 20 лет, если вы будете вводить ПИН-код каждые 15 секунд.
- Регулярные обновления плагина с исправлениями ошибок
- На основе разрешений, поэтому вы можете заставить всех использовать PIN-код или только определенных игроков, таких как сотрудники, или даже только себя.
- Головные темы. Меняйте головы с PIN-кодом на разные темы, включая Quartz, Pumpkins, Bloody, Advent и другие! Веселье в любое время года!
- Единый инвентарь без проблем с курсором. Другие плагины используют разные инвентари для каждого шага ввода вашего PIN-кода и сбрасывают ваш курсор в центр экрана, что очень раздражает и разочаровывает. PinPrompt не обновляет и только обновляет заголовок инвентаря специальными пакетами, отправляемыми клиенту.
- Сессии. Заставьте игроков входить в систему только каждые X часов и, при желании, только с того же IP-адреса, который использовался для начала сеанса!
- Блокировать входные данные , которые могут естественным образом обходить графические интерфейсы, такие как взломанные клиенты, включая, помимо прочего, перемещение, взаимодействие, чат, команды. Вы также можете заблокировать нацеливание на сущности и урон, чтобы игрок не мог умереть при вводе своего PIN-кода.
- Высокоэффективный с учетом производительности с самого начала и высоко оптимизированный, если вы видите какие-либо отчеты о времени / куче с PinPrompt, являющиеся проблемой, пришлите мне информацию, и я сделаю все возможное.
- Шестнадцатеричные цвета в поддерживаемых версиях Minecraft. (1.16+)
- Поддерживает все популярные версии. Это означает, что вы можете использовать это в 1.8, 1.12, 1.18 или любой другой версии с поддержкой будущих версий по мере их появления!
- Авторизация . Совместим с AuthMe в качестве дополнительной опции пин-кода после того, как пользователь введет свой пароль.
- Поддержка зрителей. Поддержка перехода игроков из режима наблюдателя в другой игровой режим для ввода их PIN-кода, поскольку в этом игровом режиме вы ничего не можете щелкнуть.
- Сеть безопасности . Плагин не позволит игрокам присоединиться, если у него возникнут проблемы с подключением к базе данных.
- и многое другое.
Псевдоним команды: /pinprompt, /pp и /pin
- /pin Показывает информацию о плагине.
- /pin create Создайте для себя PIN-код.
- /pin change [игрок] [новый пин-код] Измените свой текущий PIN-код или измените текущий PIN-код других пользователей.
- /pin reload Перезагрузить плагин, включая главный менеджер, также сохраняя данные.
- /pin lock Блокирует вашу учетную запись (отображает графический интерфейс PIN-кода, чтобы вы могли не беспокоиться), поэтому вам нужно повторно ввести свой PIN-код, чтобы играть.
- /pin remove [игрок] Удалить свой PIN-код или удалить PIN-код другого игрока.
- /pin unban [игрок] Разблокировать игрока, который в настоящее время забанен за неправильный ввод PIN-кода.
- pinprompt.force Игроки с этим разрешением вынуждены создавать PIN-код и использовать его для будущих входов в систему. (Хорошо для учетных записей персонала)
- pinprompt.command.create Позволяет игрокам выполнять команду /pin create для создания PIN-кода для себя, но не принуждает его иметь. (Хорошо, что игроки могут сделать себе булавку, если захотят)
- PIN-код.команда. change Позволяет игрокам выполнить команду /pin change , чтобы изменить свой текущий PIN-код, если он у них есть.
- pinprompt.command.change.other Позволяет игрокам изменять PIN-код других игроков командой / pin change [player] [new pin]
- pinprompt.command.remove Позволяет игрокам выполнять команду /pin remove для удаления собственного PIN-кода, если он у них есть .
- pinprompt.command.remove.other Позволяет игрокам удалять PIN-код других игроков с помощью команды / pin remove [player]
- pinprompt.command.unban Позволяет игрокам разблокировать игроков, если им в настоящее время запрещено вводить неправильный PIN-код.
- pinprompt.command.reload Разрешение на перезагрузку плагина.
- pinprompt.update.notification Разрешение на получение уведомлений об обновлениях при входе в систему.
- pinprompt.* для всех разрешений.
Автор Funtik Скачивания 90 Просмотры 856 Первый выпуск 28 Май 2022 Обновление 12 Июн 2022 Оценка 0.00 звёзд 0 оценок
Источник: forum-minecraft.ru
Плагин PinPrompt | Дополнительная защита ПИН-кодом для сервера MineCraft 1.8-1.19
PinPrompt — плагин, который даст Вам дополнительную защиту на сервере, чтобы Вы спали спокойно. Он способен создать специальное меню, в котором уже Вы можете вводить свой ранее созданный ПИН-код. Плагин легко настраивается, всего имеется 6 команд. Также этот плагин крайне нужен для Администраторов, ибо их без него могут взломать.
Для корректной работы плагина установите AuthMe.
Команды плагина:
/pin — показывает информацию о плагине.
/pin create — создайте ПИН-код для себя.
/pin change [игрок] [новый ПИН-код] — измените свой текущий ПИН-код или измените текущий ПИН-код других пользователей.
/pin reload — перезагрузите плагин вместе с менеджером головы, также сохраняя данные.
/pin lock — блокирует учетную запись, поэтому необходимо повторно ввести ПИН-код для воспроизведения.
/pin remove [игрок] — удалите собственный ПИН-код или ПИН-код другого игрока.
Права плагина:
— pinprompt.force — игроки с таким разрешением вынуждены вводить ПИН-код и использовать его для входа в систему в будущем. (Подходит для учетных записей сотрудников)
-pinprompt.command.create — позволяет игрокам выполнять команду /pin create для создания ПИН-кода для себя, но не требует его наличия. (Хорошо, если игроки могут сделать себе булавку, если захотят)
— pinprompt.command.change — позволяет игрокам выполнить команду /pin change, чтобы изменить свой текущий ПИН-код, если он у них есть.
— pinprompt.command.change.other — позволяет игрокам изменять ПИН-код других игроков с помощью команды /pin change [игрок] [новый ПИН-код]
— pinprompt.command.remove — позволяет игрокам выполнять команду /pin remove для удаления собственного ПИН-кода, если он у них есть
— pinprompt.command.remove.other — позволяет игрокам удалять ПИН-код других игроков с помощью команды /pin remove [игрок]
— pinprompt.command.reload — разрешение на перезагрузку плагина.
— pinprompt.update.notification — разрешение на получение уведомлений об обновлениях при входе в систему.
— pinprompt.* — для всех разрешений.
КАК УСТАНОВИТЬ ПЛАГИН?
1. Скачайте плагин.
2. Возьмите скачанный файл и перенесите в папку plugins вашего сервера.
3. Перезапустите сервер.
Источник: minesborka.com