Защита приложений с помощью LVL и явных намерений? - PullRequest
0 голосов
/ 15 февраля 2011

У меня есть приложение, использующее LVL. Он состоит (для простоты) из двух действий: Первое, называемое LVLActivity, проверяет лицензию. В случае неудачи он просто завершает работу, в противном случае он запускает второе действие, называемое MainActivity, с явным намерением.

В манифесте есть

<application android:icon="@drawable/icon" android:label="@string/app_name">
  <activity android:name=".LVLActivity">
    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
  </activity>
  <activity android:name=".MainActivity">
  </activity>
</application>

Возможно ли для кого-то еще написать небольшое приложение, которое запускает MainActivity с явным намерением?
Достаточно ли такого рода настройки для разумной защиты?

Ответы [ 2 ]

1 голос
/ 15 февраля 2011

Я полагаю, что MainActivity можно запустить из другого приложения через:

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.package", "com.package.MainActivity"));
startActivity(intent);

Итак, нет, это не защитит вашу MainActivity как таковую, но вы можете иметь какие-то требуемые общие данные между LVLActivity и MainActivity, так что MainActivity остановится, если этих данных не будет.

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

0 голосов
/ 15 февраля 2011

Почему вы не делаете проверку лицензии в своей основной деятельности? Так Google рекомендует .

Кроме того, вы можете выполнять проверку лицензии в любое время, но @Peter Knego правильно сказал, что если кто-то действительно хочет обойти проверку лицензии, он сделает это.

...