Защита базы данных сервера lineage 2 от взлома через CMS Stress Web 13



Защита базы данных от взлома через Stress Web

Самая большая ошибка, которую допускает практически каждый, это неправильно выставленные права на пользователя в базе данных сервера. Что бы понять принцип, давайте немного поразмыслим, какие запросы должен выполнять движок SW к серверу. По сути единственный и самый важный запрос, это регистрация аккаунтов, а для этого достаточно всего лишь выполнение 2-х инструкций INSERT (добавляем новые аккаунты), SELECT (собираем инфу о существующих аккаунтах). Так же хотелось бы видеть статистику сервера, но это абсолютно не проблема, самая безопасная инструкция SELECT это максимум, который нужен для вывода статистики. С такими правами, все что можно сделать, это создать новый аккаунт и все! Вы можете вообще не прятать админку, дать логин и пароль для входа всем взломщикам, но по факту у них не будет никаких прав на сервер. Это самый важный момент, потому что мало того что большинство "админов" ставят все права пользователю в СВ, так некоторые вообще подключают права root, тем самым обрекая свой сервер на взлом!

Итак, прояснив немного ситуацию перейдем к настройке подключения к БД сервера.

Первое что необходимо сделать, создать еще одного пользователя для базы данных сервера, который будет вписан в админку СВ. Никогда не используйте одного и тоже пользователя в настройках сервера и админке сайта. В идеале для каждого подключения той или иной программы нужно использовать нового пользователя со своим списком привелегий, так вы минимизируете ущерб в случае взлома одного из пользователей базы данных

Как создать пользователя базы данны?

По моему опыту админы серверов lineage 2 чаще всего используют программу Navicat for MySQL. Эта программа вполне подойдет для наших целей, поэтому объяснять буду на её примере.
Чтобы создать нового пользователя, выбераем соединение с котором собираетемся работать, затем:

- Жмем на вкладку Manage Users с изображением человека
Manager Users Navicat
- Жмем на кнопку Add user
Add User Navicat
- В открывшимся окне заполняем поля: User name, host, password и при необходимости дополнительные настройки во вкладке Advanced
Save User Navicat


После того как вы нажмете Ok, будет создан новый пользователь в списке пользователй Manager User, теперь можно перейти к настроке прав пользователя.


Как выставить права пользователю?

- В списке пользователей Manager User Выбираем пользователя которому хотим назначить права. Справа в окне Global Privileges не должно быть никаких галочек.
Выбор пользователя
- Жмем на крестик рядом с именем пользователя и открываем список баз данных, которые доступны пользователю
Список баз данных
- Выбираем базу данных из списка. Справа в окне Databases Specific Privileges убираем все галочки( если они есть), хотя можно поставить SELECT и жмем Save.
Выбираем базу данных
- Теперь жмем на крестик слева от названия базы данных и нам открывается список таблиц. Выбираем таблицу и ставим галочки напротив тех запросов, которые нужны именно данной таблице. Например, если таблица хранит в себе какие-то статистические данные, нам достаточно поставить галочку напротив SELECT и нажать SAVE, после этого информация сможет быть прочитана, но не сможет быть записана.
Выбираем базу данных


Вот в кратце по сути и все, для более детального разбора восппользуйтесь тематическими пособниками.


Каке права надо выставить для связи Stress Web с Базой данных сервера?

Вот мы и подошли к самому главному вопросу интересующему нас. Эта информация никакой не секрет, она давно доступна на оффициальном сайте StressWeb в разделе Работа с БД


Выставляем SELECT для таблиц:

char_templates
clan_data
grandboss_data (grandboss_spawnlist)
npc
raidboss_spawnlist
castle
siege_clans
olympiad_nobles
weapon
armor
etcitem
seven_signs


Выставляем DELETE (но это совсем не обязательно, если вы не собираетесь например удалять у персонажей что-либо. Не выставив эту привелегию вы еще больше защитите свою бд) для таблиц:

character_friends
character_hennas
character_macroses
character_quests
character_recipebook
character_shortcuts
character_skills
character_skills_save
character_subclasses
seven_signs
items
clan_data


Если вы ничего не меняете и не удаляете в бд через админку сайта, то для таблиц ниже запросы DELETE и UPDATE можете не ставить это еще один плюс к защите

accounts — INSERT, UPDATE, DELETE, SELECT
characters — UPDATE, DELETE, SELECT (Если вы не управляете чарами через админку, то оставляйте только SELECT)

items — INSERT, UPDATE,DELETE,SELECT (В идеале лучше всего что бы к этой таблице небыло доступа, но для выдачи доната через сайт она нужна. Самый лучший вариант создать отдельного пользователя именно для этой таблицы и сделать выдачу доната через него, тем самым отделив сам сайт от системы доната, а еще лучше перенести систему доната на отдельный хостинг. В общем тут уже решайте сами.)

РОБОКАССА
LS — stress_donate_money — INSERT, UPDATE, SELECT (sw_v11_install_login.sql)
GS — stress_auto_rb — INSERT, UPDATE,SELECT (sw_v11_install_game.sql)


На таблицы создаваемые движком при установке (движковые) необходимо выставлять права — INSERT, UPDATE, DELETE, SELECT

P.S Конечно ваша баз данных может немного отличаться, но я не просто так сделал такое длинное вступление. Самое важное понять принцип, если вы поняли о чем идет речь, то вы сами поймете какие права нужны именно в вашем случае.

Удачных вам открытий!)

При копированни данного материала пожалуйста указывайте ссылку на источник: L2Banners.ru

P.S.S Я далеко не гуру в этой области, поэтому буду рад любой аргументированной критике и более полной информации. Пишите в комментарии ваши замечания, уточнения т.д..



Вернуться на сайт