Какие технологии вы бы порекомендовали для защищенного клиентского графического приложения? - PullRequest
2 голосов
/ 11 мая 2011

У меня впереди большой проект, по сути, это будет онлайн-игра с опасностью, что-то вроде покера.Моя проблема в том, что я не совсем уверен, как лучше подходить к клиентской стороне.

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

Из моего опыта работы сJava, есть довольно много декомпиляторов, и байт-код, вероятно, не так уж и сложно взломать (я тут ошибаюсь).

Так как для игры потребуется 2-мерная графика, я бы хотел работать с технологиейэто делает разработку графического интерфейса пользователя, по крайней мере, немного более плавной.

Моя другая мысль была о Flash, но, поскольку я не видел, чтобы во многих онлайн-казино использовали Flash, он мог бы быть немного более уязвимым, чем Java / .NET?

Я пытаюсь спросить здесь: какую технологию вы бы порекомендовали разработать очень безопасное клиентское приложение с графическим интерфейсом на стороне пользователя с некоторой причудливой 2-мерной графикой?

Ответы [ 2 ]

3 голосов
/ 11 мая 2011

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

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

У меня есть мнение по поводу установки. Это намного, намного проще, если не нужно ничего устанавливать, то есть игра полностью работает на веб-сайте.

0 голосов
/ 11 мая 2011

Краткий ответ, и это мое мнение, заключается в том, что не существует технологии, которая могла бы делать то, что вы хотите.В настоящее время существуют технологии, которые увеличивают сложность понимания приложения на стороне клиента.Например, на Java и .Net очень легко смотреть.ByteCode и IL не являются безопасными в любой форме или форме.Вы можете добавить к ним запутывание, чтобы поднять планку, так сказать ... но это все еще не безопасно.Вы могли бы даже перейти к полноценному скомпилированному приложению, но это все еще можно взломать.Пока компьютер способен понимать приложение, тогда где-то будет человек, который сможет разбить программу на части.

Ваш подход здесь неправильный.Вы должны построить всю логику, всю функциональность на сервере, к которому никто не имеет доступа, а затем использовать клиентские приложения для простой обработки части UX.Единственный безопасный способ защитить ваш код - не дать им его получить.И дизайн API, которые нельзя злоупотреблять (например, не позволяйте клиенту бросать кости)

...