Перейти к содержанию

Вокруг сервера

Сайт для сервера Lineage 2

Сайт сервера — это не витрина, а часть инфраструктуры: через него регистрируются, с него качают патч, по нему судят, стоит ли вообще заходить. И именно он чаще всего оказывается дырой, через которую уводят базу аккаунтов.

Обязательный минимум

Всё остальное — украшения. Без этих шести вещей человек, пришедший по ссылке, уходит, не разобравшись.

  • Рейты и хроника на первом экране. Первое, что ищет игрок, и единственное, по чему он отсеивает сервер за три секунды. Какие множители вообще есть.
  • Регистрация. Создание игрового аккаунта без танцев с бубном.
  • Скачать клиент и патч. С указанием версии и размера. Ссылка на чужой файлообменник с рекламой — главная причина, по которой до игры не доходят.
  • Статус сервера. Онлайн или нет, сколько человек. Устаревший счётчик хуже его отсутствия.
  • Правила и что продаётся за деньги. Честно и в одном месте: по этому пункту сервер оценивают опытные игроки.
  • Куда писать. Живой контакт, а не форма обратной связи в никуда.

Откуда берётся «онлайн»

Два рабочих способа, и у каждого своя цена.

  • Спросить у сервера. Сайт проверяет, отвечает ли игровой порт, и показывает результат. Честно, но даёт только «жив или нет», без количества игроков.
  • Прочитать из базы. Количество персонажей в игре сервер и так хранит. Точнее, но означает, что сайт ходит в базу игрового сервера — а это ровно та связь, которую потом эксплуатируют.

Любой из вариантов надо кешировать. Счётчик, который дёргает сервер на каждое обновление страницы, под наплывом посетителей начинает мешать самому серверу.

Регистрация — самое опасное место

Форма регистрации означает, что сайт пишет в таблицу аккаунтов. То есть веб-часть, доступная всему интернету, имеет доступ к учётным данным игроков. Отсюда три правила, и они не обсуждаются.

  1. Отдельный пользователь базы для сайта. С правами только на таблицу аккаунтов, и только на то, что действительно нужно. Не тот же пользователь, под которым работает игровой сервер.
  2. Пароль хранится так же, как его ждёт сервер. L2J исторически держит его хешем без соли — по нынешним меркам это слабо, и единственное, что вы можете сделать, — не ухудшать: не хранить пароли открытым текстом нигде по дороге и не слать их на почту.
  3. База не смотрит наружу. Даже если сайт и сервер на разных машинах, доступ к ней идёт по закрытому каналу, а не по открытому в интернет порту.

Готовые шаблоны и чем они кончаются

Шаблоны сайтов под Lineage 2 лежат на форумах пачками: оформление под конкретную хронику, готовая регистрация, счётчик онлайна, иногда магазин. Соблазн понятный — всё уже сделано.

Проблема в том, что такой шаблон приходит с рабочим кодом регистрации, то есть с доступом к базе аккаунтов. Добавить туда тихую отправку логина с паролем на сторону — несколько строк, которые в чужом коде не видны никому, кто его не читал целиком. Это та же история, что с серверными сборками, только последствия заметнее: уводят не сервер, а игроков. Про бэкдоры в сборках.

Что с этим делать:

  • Брать оформление, а не код. Вёрстку и картинки — да, готовую регистрацию — нет.
  • Если код всё же чужой — читать то, что работает с базой и с паролями. Это один-два файла, а не весь проект.
  • Смотреть, куда сайт ходит наружу. Запрос на незнакомый адрес в коде регистрации объясняться не должен — он должен удаляться.
  • Держать сайт и игровой сервер на разных учётных записях базы. Тогда дыра в сайте остаётся дырой в сайте.

На этом домене до нас выкладывали в том числе такие шаблоны. Мы их не выкладываем и ссылок на них не даём — по той же причине, по которой не раздаём сборки.

Дальше по разделу