Как * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1003
Никогда не доверяй клиенту. Никогда ничего не кладите на клиента. Клиент в руках врага. Никогда и никогда не забывай этого.
К сожалению, для практически любого реального приложения, требующего использования вычислительной мощности клиента, что-то должно быть помещено на клиент и, следовательно, потому что доступно злоумышленнику. Вопрос, который необходимо задать - как и в случае с любой мерой безопасности - сколько времени и денег вы готовы потратить на снижение этого риска?
Некоторые люди любят указывать людям, спрашивающим об обфускации или механизмах лицензирования на стороне клиента, «о, нет никакого смысла, в конце концов, он будет сломан». Но это упущение: цель таких мер состоит в том, чтобы подтолкнуть это «в конечном итоге» дальше в будущее, до такой степени, что для недостаточно решительного злоумышленника это будет «никогда».
Например: если ваше приложение отправит свои данные в виде обычного текста по электронной почте, это победит примерно ноль злоумышленников. Отправка его в электронном письме rot13 может победить, возможно, 5% злоумышленников. Отправка его в зашифрованном виде с использованием имени пользователя в качестве ключа будет побеждать больше. Запутывание кода отправки бесплатным обфускатором побеждает больше. Обфусцирование с помощью обфускатора коммерческого уровня победит больше. Требование к каждому клиенту иметь аппаратный ключ может победить «всех, кроме самых решительных» злоумышленников, как любят говорить люди, но это, вероятно, будет невыносимой.
Из "Я студент университета" я предполагаю, что это не самый чувствительный проект когда-либо. Используйте бесплатный обфускатор и зашифруйте отправленные данные, используя некоторую информацию о пользователе в качестве ключа. Это, вероятно, подойдет.