Цитата:
Сообщение от Hennesy
Ну окей,я сделаю так=)
Добавлено через 45 секунд
Осталось понять как))
|
Если делать, как говорил
PROGRAMMATOR, то требуется писать скрипт на PHP/ASP/JSP/еще_какой_то_веб_язык, при этом алгоритм работы скрипта прост до невозможности: подключаемся к БД, делаем реквест по имени пользователя и сравниваем хеши паролей, ну и формируем ответ для клиента, в данном случае это у нас лаунчер на шарпах.
Способ с запросом у логин-сервера сложнее, но тоже вполне реальный, к тому же их аж два:
1. Эмулируем клиент до шага авторизации, после этого отключаемся от логин-сервера. Таким образом нам не надо соваться в исходники сервера, но нам надо писать кучу кода в лаунчере.
2. Делаем отдельный пакет на серверной части для проверки авторизации, при этом, этот пакет идет, как ServerStatus/ProtocolRevision в l2j, т.е. он относительно статичен и ему не требуется пошаговое подключение клиента с разными проверками и плюшками.
Небольшая аналитика:
В первом случае (веб-запрос) нам в принципе не надо знать адрес сервера и другие важные фичи, мы просто формируем запрос и отсылаем его по адресу домена (который мы еще можем и изменить на другой сервер), т.е. этот способ самый безболезненный и требует минимум изменений при смене IP самого сервера, но при этом открывает большой простор для брутеров, что не есть good.
Во-втором случае, разберем пока первый вариант реализации, мы эмулируем клиент и тут забота о брутерах пропадает, ибо там уже все ложится на плечи системы защиты от брута сервера, но к сожалению нужно будет писать просто кучу кода на шарпах. Если смотреть по второму варианту, то тут нечто среднее между первым случаем и вторым случаем первого варианта (да-да, написал коряво, но я надеюсь, что понятно), в принципе на тот же пакет можно прикрутить защиту от брута и жить себе спокойно, припеваючи, при этом тонны кода просто напросто отпадают, но тут же возникает главная проблема всех вариантов второго случая: трудность со сменой IP-шников самого сервера, хотя и тут можно выкрутиться: завести поддомен на главном домене сервера и на него завязать адрес сервера