Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин ЗАШИТА ОТ ВЗЛОМА ИГРОКА

ВАМ ПОНРАВИЛСЯ ПЛАГИН

  • ДА

    4 голосов 28,6%
  • НЕТ

    10 голосов 71,4%

  • Опрос закрыт .
Статус
Закрыто для дальнейших ответов.

almohax

Активный участник
Пользователь
Баллы
68
Имя в Minecraft
almohax
Зашита от взлома и защита сесии 100% рабочий вариант

Описание внутри. тема закрыта чтобы не флудили.

 

Вложения:

  • noHackUser.zip
    noHackUser.zip
    Размер файла
    29,1 КБ
    Просмотров
    75
Последнее редактирование:
скинь ссылку,гляну
Вообще этот плагин защищает даже если забыли включить онлайн мод
Также заменяет authme , и не надо вводить глупые пароли
чем пароли глупые?

и да, как у тебя идёт проверка текущего пользователя? по IP ?
http://rubukkit.org/threads/ujazvimosti-v-jadre-i-modax.104719/
 
как у тебя идёт проверка текущего пользователя? по IP ?
По нику. Существует возможность обхода, если игрок заходил недавно. Также сие чудо может вызывать лаги сервера, так как работает с базой в основном потоке.
 
эээ вы что не поняли принцип работы?

Кароче в основной безе пользователей на сайте есть поля user/ password / sesion_id/ server_id так вить
при заходе пользователя с клиента идет запрос по joinserver.php с отправкой параметров проверки и с генирированым самим клиентом server_id который заносится в вашу базу если ответ положительный от скрипта.

В основной базе в таблице с пользователями вам надо добавить еще одну колонку server_id_old и перенести все параметры из server_id в server_id_old

что у нас получается игрок пытается зайти на сервер при положителном ответе joinserver нанесет новые параметры в базу

при заходе игрока на сервер плагин смотрит параметры в базе на сайте server_id и server_id_old у user
если они одинаковые он не пускает игрока в игру если они отличаются то он эти параметры в базе делает одинаковые и пропускает игрока.

ВОТ И ВСЕ . пару строк кода и работает как часы.
можешь сам попробывать потестить отключи онлайн мод и зайди на сервер под левым ником
легче фикс поставить, тем более где игрок будет вводить пароль я не понял?
эээ вы что не поняли принцип работы?

Кароче в основной безе пользователей на сайте есть поля user/ password / sesion_id/ server_id так вить
при заходе пользователя с клиента идет запрос по joinserver.php с отправкой параметров проверки и с генирированым самим клиентом server_id который заносится в вашу базу если ответ положительный от скрипта.

В основной базе в таблице с пользователями вам надо добавить еще одну колонку server_id_old и перенести все параметры из server_id в server_id_old

что у нас получается игрок пытается зайти на сервер при положителном ответе joinserver нанесет новые параметры в базу

при заходе игрока на сервер плагин смотрит параметры в базе на сайте server_id и server_id_old у user
если они одинаковые он не пускает игрока в игру если они отличаются то он эти параметры в базе делает одинаковые и пропускает игрока.

ВОТ И ВСЕ . пару строк кода и работает как часы.
можешь сам попробывать потестить отключи онлайн мод и зайди на сервер под левым ником
если в лаунчере,то можно обойти
 
КАКОЙ ПАРОЛЬ зачем тебе пароль это глупый костыль. тут проверка параметра server_id плагин делает то что сервер делает хреново.

если у игрока нет доступа к самому серверу то хоть он с левого лаунчера будит заходить, зная только логин его плагин не пустит
Ты вообще принцип работы сервер клиента знаешь ? посмотри на досуги

у плагин просто вторичная проверка server_id

если будит работать не в основном потоке точно обойду
Странный плагин
Я даже не понял

Самый простой и проверенный плагин AuthMe
Он спасёт нас от всяких взломов
А твой можно ломануть, если постараться
 
С такой "защитой" любой желающий может совершить DoS атаку на сервер, используя обычных ботов, ведь все обращения к базе идут из основного потока, и для каждого бота сервер будет ждать ответа от БД.
 
С такой "защитой" любой желающий может совершить DoS атаку на сервер, используя обычных ботов, ведь все обращения к базе идут из основного потока, и для каждого бота сервер будет ждать ответа от БД.
+
 
а что мешает сейчас им устроить ДДОС атаку также юзая joinserver что с плагином что без него ничего не меняет.
Насчёт 1.6.4 не знаю, но в 1.7.10 обращение к joinserver идёт в отдельном потоке. Думаю, что и в 1.6.4 так же, а если и нет, то, всё равно, два обращения к БД хуже, чем одно.
 
наверно из за этого отдельного потока и ломаю админку, я же писал в начале что игрок пытаясь авторезироватся в качестве админа успевает прописать команду до того как приходит ответ от joinserver.
:lol: Товарищъ, Вы походу тему не читали. Там написано, из-за чего такой косяк.
Насчёт 1.6.4 не знаю, но в 1.7.10 обращение к joinserver идёт в отдельном потоке.
Однозначно, что в отдельном, иначе бы игра висла.
 
Я не понимаю куда там отдельный поток кидать, и смысл, я могу дать исходник что вы доработали, если считаете что код работает не так .
Так я не понял,server id генерирует клиент?
 
Предлагаю такую систему:
  • Для каждого игрока есть свой Enum, обозначающий состояние авторизации:
    • IN_PROGRESS - идёт проверка (значение по-умолчанию)
    • ALLOW - есть доступ
    • DENY - нет доступа
  • При входе игрока на сервер для него создаётся поток, проверяющий наличие доступа. В случае наличия или отсутствия оного Enum будет равен ALLOW или DENY соответственно.
  • При каждом вводе команды (ведь проблема в этом, как я понял) будет проверяться значение Enum. Если его значение равно:
    • IN_PROGRESS - команда будет отменена
    • ALLOW - команда будет выполнена
    • DENY - игрок будет кикнут с сервера

С такой системой авторизация игрока не будет вешать сервер, и игрок не сможет выполнить команду, пока проверка не отработает. Так как команды от игроков поступают максимум раз в несколько тиков, нагрузка будет мизерная.
 
Дорабатывать не буду, так как мне этот плагин не нужен. Я только подсказал, как лучше сделать.
 
а ну тогда это не очень то эффективно я использовал ArrayList<String> userGAME = new ArrayList<String>();
но больно много условий и больше грузит, проще проверять по ip и не довать делать запрос чаще чем 10сек
Почему неэффективно? Даже, если в каждом тике будет по 100 команд, то и 1 мс не наберётся (в 1 тике 50 мс).
P.S. Проще != производительнее.
 
Статус
Закрыто для дальнейших ответов.

Поделиться этой страницей

Назад
Верх