B3H0LD3R Posted September 29, 2016 Share Posted September 29, 2016 Предыстория: Решил освоить разработку под MTA. (Опыт разработки на других языках имеется) В lua и функционале mta думаю освоюсь быстро, благо да данном форуме много толковых ссылок по данной теме , да и wiki в этом плане неплоха. Но 2 дня гугления не дали внятных ответов на вопросы мучащие мою голову. Хотелось бы получить ответы перед стартом освоения всего этого беспокойного хозяйства на практике. Вопросы не дающие покоя: 1. Насколько легко подменить клиентскую часть? 2. Клиентскую часть воспринимать как аналогию с HTML? (т.е. проверять все данные приходящие на сервер в режиме реального времени) 3. Как воевать с рассинхроном? (По причине лага или банально телепорта игрока в клиенте (Который как я понимаю устроить более чем реально, даже если такового создателем мода не было задумано)) 4. Что лучше не далать на стороне клиента? Что вообще катигорически нельзя делать на стороне клиента? 5. Как защищаться от подмены малой кровью? 6. Ну и хотелось бы услышать вообще какие-либо советы по этой части. P.S. Просто не совсем понимаю, как при такой схеме устройства клиента, может быть вообще речь о защите от подмены клиентской части и т.д. Link to comment
Fabervox Posted September 30, 2016 Share Posted September 30, 2016 1. Что-то подменить можно, что-то нельзя. Средства которые позволяют это сделать, довольно редки, самостоятельно врядли какое-то заметное количество людей сможет создать, поэтому имеющиеся инструменты довольно быстро отслеживаются MTA Team и затем обновляется античит. Система серийных номеров достаточно надежная, привязана к железу, поэтому баны выданные на вашем сервере или вообще в MTA будут работать довольно четко. Исходники защищены от реверса, банально тем что не все предоставлены в открытый доступ. На клиенте есть драйвер, он защищает программу от внедрения в память, по качеству это подобно защите своих процессов у антивирусов. 2. Вам нужно бороться с каким-то небольшим процентом читеров, сколько это будет я точно нескажу, может-быть тысячная процента, а может быть дойдет в какой-то момент и до пары-тройки процентов. 3. В некоторых случаях, контролируют скорость перемещения тс и игроков, здесь следует не забывать, что изменение положения, сначала узнает сервер, а потом другие игроки. Но вообще баги с тп игроков, будут случаться с большой вероятностью только от кривости ваших скриптов. В остальном нужно бороться с плохим пингом и фпс игроков, 4. Ну во-первых никаких лишних данных клиентской части не сообщать. Во-вторых где возможно использовать ивенты, а не элементдату. В-третьих контролировать отсутствие атак, т.е. вызовов которые естественным образом невозможны, если вдруг попался такой клиент. 5. Всё выше, а если не хватит, то почитайте об этом в интернете. MTA не единственное место где используется Lua машина. В принципе, с учетом закрытости самой GTASA, рассчитывать на беспрецендентную безопасность не стоит. Подмены это одна из уязвимостей, с которой ведется борьба. Изначально это было реализовано именно так, и было логично, т.к. отмычка и замок не соответствуют тому что прятали за дверью. Теперь за дверью чуть больше богатства. Формально free2play несоответствует MTA, и MTA Team могла осудить это тем самым ограничивая повышение ценности за дверью. Смысла в этом не было, потому-что к повышению этой ценности уже были некоторые отмычки, возможно это было оплачено другим домом, у которого тогда за дверью ценность была, хотя и не было на двери замка. Вцелом возможности что дает концепция клиентского кода, ещё недостаточно использованы, и они на самом деле стоят имеющейся уязвимости. Бояться тут нечего, нужно совершенствоваться и работать, в конце концов конкурентов в виде мультиплеера GTA по сути нет. 3 Link to comment
B3H0LD3R Posted September 30, 2016 Author Share Posted September 30, 2016 (edited) Спасибо за развернутый ответ. Страхов немного поразвеялось. Тут таки да 100% защищенности никогда не существует, всегда найдется тот кто найдет уязвимость. Но таки радует, что не все так и плохо обстоит. Ответ получен, темку можно крыть. Edited September 30, 2016 by B3H0LD3R Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now