Jump to content

Степень безопасности клиентской части. (Нубские вопросы)


Recommended Posts

Предыстория:

Решил освоить разработку под MTA. (Опыт разработки на других языках имеется) В lua и функционале mta думаю освоюсь быстро, благо да данном форуме много толковых ссылок по данной теме , да и wiki в этом плане неплоха. Но 2 дня гугления не дали внятных ответов на вопросы мучащие мою голову. Хотелось бы получить ответы перед стартом освоения всего этого беспокойного хозяйства на практике.

Вопросы не дающие покоя:

1. Насколько легко подменить клиентскую часть?

2. Клиентскую часть воспринимать как аналогию с HTML? (т.е. проверять все данные приходящие на сервер в режиме реального времени)

3. Как воевать с рассинхроном? (По причине лага или банально телепорта игрока в клиенте (Который как я понимаю устроить более чем реально, даже если такового создателем мода не было задумано))

4. Что лучше не далать на стороне клиента? Что вообще катигорически нельзя делать на стороне клиента?

5. Как защищаться от подмены малой кровью?

6. Ну и хотелось бы услышать вообще какие-либо советы по этой части.

 

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

Link to comment

1. Что-то подменить можно, что-то нельзя. Средства которые позволяют это сделать, довольно редки, самостоятельно врядли какое-то заметное количество людей сможет создать, поэтому имеющиеся инструменты довольно быстро отслеживаются MTA Team и затем обновляется античит. Система серийных номеров достаточно надежная, привязана к железу, поэтому баны выданные на вашем сервере или вообще в MTA будут работать довольно четко. Исходники защищены от реверса, банально тем что не все предоставлены в открытый доступ. На клиенте есть драйвер, он защищает программу от внедрения в память, по качеству это подобно защите своих процессов у антивирусов.

2. Вам нужно бороться с каким-то небольшим процентом читеров, сколько это будет я точно нескажу, может-быть тысячная процента, а может быть дойдет в какой-то момент и до пары-тройки процентов.

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

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

5. Всё выше, а если не хватит, то почитайте об этом в интернете. MTA не единственное место где используется Lua машина.

В принципе, с учетом закрытости самой GTASA, рассчитывать на беспрецендентную безопасность не стоит. Подмены это одна из уязвимостей, с которой ведется борьба. Изначально это было реализовано именно так, и было логично, т.к. отмычка и замок не соответствуют тому что прятали за дверью. Теперь за дверью чуть больше богатства. Формально free2play несоответствует MTA, и MTA Team могла осудить это тем самым ограничивая повышение ценности за дверью. Смысла в этом не было, потому-что к повышению этой ценности уже были некоторые отмычки, возможно это было оплачено другим домом, у которого тогда за дверью ценность была, хотя и не было на двери замка.

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

  • Like 3
Link to comment

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

Edited by B3H0LD3R
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...