LINUX.ORG.RU

WEB авторизатор minecraft написанный на gambas, php и bash версия 0.0.8

 , , , ,


0

1

Собственно он https://dl.dropboxusercontent.com/u/86123252/minecraft-web-gambas-login/minec...

Программа содержит gambas модуль и web-морду на php. Вместе они связываются через output.txt находящийся в каталоге web морды

Авторизатор раз в секунду читает данные из output.txt и если они изменились то анализирует логин, пароль, запрашиваемое действие, в ходе анализа он просматривает файл users.txt и если находит в нём нужную пару логин-пароль то посылает на консоль minecraft. Посылает данные с помощью возможностей утилиты screen. В этой версии работа minecraft сервера внутри сессии screen обязательна.

Авторизация строиться на той особенности работы minecraft что после удаления из белого листа пользователь может продолжать играть на сервере пока соединение не завершиться. Если внести пользователя в белый лист на 30 секунд, а потом удалить, то у него будет 30 секунд на то что бы авторизоваться.

В этой версии авторизатора есть следующие изменения:

  • Теперь pipe поток не нужен, передача команд происходит исключительно через screen
  • Введён лимит времени попыток входа, максимум 20 минут
  • Изменён Web интерфейс, теперь видно что значение было принято и форма сработала
  • Исправлена уязвимость позволявшая обрушить авторизатор введя некорректное значение в одно из полей

Если в поле Seconds значение 0, то оно автоматически подменяется значением 30. Это не нововведение, но возможно самый популярный совет.

Ссылка на прошлый тред WEB авторизатор minecraft написанный на gambas, php и bash

Ответ на: комментарий от anonymous

ОПушка может в hg загнать и на bitbucket, тогда и не git и не github.

anonymous
()
Ответ на: комментарий от rikardoac

Запилю как релиз первой версии сделаю.

rezedent12 ☆☆☆
() автор топика

Disclaimer: Не майнкрафтер и не линуксоид

Авторизатор раз в секунду читает данные из output.txt и если они изменились то анализирует логин, пароль, запрашиваемое действие, в ходе анализа он просматривает файл users.txt и если находит в нём нужную пару логин-пароль то посылает на консоль minecraft. Посылает данные с помощью возможностей утилиты screen. В этой версии работа minecraft сервера внутри сессии screen обязательна.

При всей моей нелюбви к башу, это делается через tail -f output.txt|немного-магии-для-проверки-логинпароля|послать-майнкрафту.

Ждём реализации на bash-on-balls вместо php и подобном конвеере вместо gambas от сочувствующих.

x3al ★★★★★
()

Авторизатор раз в секунду читает данные из output.txt и если они изменились то анализирует логин, пароль, запрашиваемое действие, в ходе анализа он просматривает файл users.txt и если находит в нём нужную пару логин-пароль то посылает на консоль minecraft. Посылает данные с помощью возможностей утилиты screen. В этой версии работа minecraft сервера внутри сессии screen обязательна.

Просто прекрасно. LOR/dev снова не подводит ожиданий.

geekless ★★
()
Ответ на: Disclaimer: Не майнкрафтер и не линуксоид от x3al

При всей моей нелюбви к башу, это делается через tail -f output.txt|немного-магии-для-проверки-логинпароля|послать-майнкрафту.

PHP и mineraft работают от разных пользователей, minecraft и www-data .

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от x3al

named pipe

Было в прошлой версии, избавился. Теперь работает через screen только.

rezedent12 ☆☆☆
() автор топика

Здесь уже говорили, что это самый замечательный проект, который только можно придумать?

buddhist ★★★★★
()
Ответ на: комментарий от x3al

из readme.txt

4.1 Первый путь, модифицировать скрипт start-output-login.sh параметр http-command=~/server/output.txt заменить на что то типа http-command=/var/www-html/login-minecraft/output.txt это зависит от того в каком каталоге находятся данные твоего web сервера. Проследи тогда что бы каталог с output.txt был доступен пользователю minecraft, то есть открой данные всем на «только чтение». Хозяином файла output.txt желательно сделать пользователя minecraft и разрешить группе www-data только запись в этот файл, а всем остальным запретить доступ вообще. Для chmod это значение 720 то есть надо выполнить команду: chmod 720 output.txt

4.2 Второй путь подставить символическую ссылку на output.txt лежащий в нужном месте, естественно надо поставить на него права 720, проследить что бы путь к нему был доступен пользователю minecraft. 4.3 WEB морда находится в каталоге web, каталог login-minecraft надо расположить в каталоге web сервера, естественно php должен там работать.

4.4 Проверь открываеться ли мой-сервер/login-minecraft, если не открываеться форма, значит что то не так. Проверь знаешь ли ты HTML

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от buddhist

Да. Ибо он нужен только тому кто использует ванильный minecraft сервер без официальной авторизации.

rezedent12 ☆☆☆
() автор топика

с одной стороны каникулы - это хорошо, школа денег не сосет. но есть и другая сторона медали, как нам долбили в курсе диалектического материализма

ananas ★★★★★
()
Ответ на: комментарий от derlafff

А вдруг кому то пригодиться? Не так страшен чёрт как его малюют, на моём сервере это всё вполне нормально работает. Настройку требует всего один раз, если использовать пути по умолчанию, то требуется разве что смена прав доступ на файл output.txt , введение его в группу www-data, и создание символической ссылки в каталоге minecraft сервера на него.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

А вдруг кому то пригодиться?

http://tsya.ru

Не так страшен чёрт как его малюют, на моём сервере это всё вполне нормально работает.

Чесать в носу левой рукой через правую ногу тоже можно, и вполне нормально чешется

derlafff ★★★★★
()

users.txt

На крайний случай уж лучше SQLite использовали.

IIIypuk ★★★
()

Авторизатор раз в секунду читает данные из output.txt и если они изменились то анализирует логин, пароль, запрашиваемое действие, в ходе анализа он просматривает файл users.txt и если находит в нём нужную пару логин-пароль то посылает на консоль minecraft. Посылает данные с помощью возможностей утилиты screen. В этой версии работа minecraft сервера внутри сессии screen обязательна.

http://www.le-francais.ru/lecons/lecon-1/anecdote

anonymous
()

Тебе помочь с авторизацией в майнкрафте через правку class файлов сервера и клиента? Пиши в скайп tdrive31

TDrive ★★★★★
()
Последнее исправление: TDrive (всего исправлений: 1)
Ответ на: комментарий от geekless

Странно, может мой архиватор уровни пропускает. Структура то какая вложенности?

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

Так их же править надо будет в файле сервера, а если я этого захочу, я и буккит поставлю.

Официальный майнкрафт и баккит это разные вещи. Но регистрация, система скинов и тд, и там и там делаются одинаково и намного проще чем у тебя сделано.

TDrive ★★★★★
()
Ответ на: комментарий от rezedent12

Но там надо jar файл модифицировать,

1 строчку InClassTranslator-ом поменять.

а здесь не надо.

А здесь надо городить дырявые костыли. )
Что будет если я зайду к тебе на сервер, дождусь пока ты решишь перелогиниться и попытаюсь зайти в игру под твоим ником попав в момент когда ты уже ввел пароль на сайте но еще не зашел в игру? )

TDrive ★★★★★
()
Последнее исправление: TDrive (всего исправлений: 1)

Ад какой-то. Гораздо меньшими усилиями производится правка пары файлов в клиенте и сервере, а затем пишется простенький мастер-сервер, что в результате дает гораздо более кошерный результат.

edigaryev ★★★★★
()
Ответ на: комментарий от rezedent12

Да, кстати, если я не ошибаюсь, пльзователи с правами op могут заходить на сервер даже если их нету в вайт листе.)

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

Да, поэтому op вместо auth использует op и deop

Что будет если я зайду к тебе на сервер, дождусь пока ты решишь перелогиниться и попытаюсь зайти в игру под твоим ником попав в момент когда ты уже ввел пароль на сайте но еще не зашел в игру? )

На этот случай есть kickme.

Это и не предназначено для больших серверов. Скорее для малых где играет человек 20 максимум.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

Да, поэтому op вместо auth использует op и deop

Нифига не понял. Вот бегает по серверу op, что мне помешает зайти под его ником?

На этот случай есть kickme.

И многие догадаются, что под ними ктото левый зашел?)

Это и не предназначено для больших серверов. Скорее для малых где играет человек 20 максимум.

Есть официальная система авторизации которая делается за 10 минут и подходит для любых срверов. К тому же class файлы в любом случае придется править если делать систему скинов и плащей.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

И многие догадаются, что под ними ктото левый зашел?)

А смысл авторизовываться если не делать делать попыток входа? Если зайти не получается, значит кто то занял никнейм. Надо кикать и жаловаться админу. Тем более что времени на попытки входа всего 30 секунд.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от TDrive

Нифига не понял. Вот бегает по серверу op, что мне помешает зайти под его ником?

ОП который бегает в данный момент.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

Сервер с удовольствием кикнет ОПа и вместо него зайдет лжецаревич.

edigaryev ★★★★★
()
Ответ на: комментарий от TDrive

Проверил, ОП получит сообщение что кто то зашёл под его никнеймом вместо него. Надо будет тогда изменить передачу команд, сделать так что бы всё администрирование можно было через web делать без внесения в список операторов.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

сделать так что бы всё администрирование можно было через web делать без внесения в список операторов.

Это будет очередной адовый костыль со своими багами.

TDrive ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.