Как защитить данные в приложении?

237
15 января 2018, 08:32

Есть программа в которой есть возможность войти и написать свой отзыв. Есть человек коорый подсмотрел ссылки и теперь шлет свои отзывы через свою программу. Как можно защитить прогамму и не дать ему писать свои отзывы если мы знаем:

  1. Любой код можно декомпилировать и подсмотреть строку.
  2. Можно засниферить сссылки из Chаrles, к примеру.
  3. Можно выдавать пользователям токен при логине, но какой в этом смысл если тот человек точно так же получит доступ к ссылке входа и будет получать этот токен в своей проге.
  4. Можно сравнивать SHA1 подписи приложения, но какой в этом смысл если он узнает подпись апк и будет подставлять ее в строку.

Как решить этот вопрос, как не дать злоумышленнику доступ к своему API?

Answer 1

Всё в кучу -> разные огромные темы Аутентификация, Шифрование, Спам, РеверсИнжиниринг ....

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

Те ваш ответ это 3-й пункт, он получил токен и будет по нему ходить, ведь он прошел Регистрацию у вас, те он обычный пользователь вашей API и вы его идентифицируете, вот только если он потом может написать спам бота и рассылать отзывы, или как-то заDOSить вас, это уже брешь в самой API, Серваках и так далее, нужно смотреть.

Answer 2

нельзя 100% защититься.
но можно усложнить жизнь, чтобы взлом не стоил конечной цели. Чтобы обойти MiTM атаку можно сделать https + пининг сертификатов.

READ ALSO
Создание текстового поля на весь экран

Создание текстового поля на весь экран

Как создать EditText(необязательно) , что бы он был на весь экран и с такими линиями?

252
Nulable аннотация показывает ошибку в Dagger2

Nulable аннотация показывает ошибку в Dagger2

У меня есть метод который может вернуть nullable обьект , я добавляю соответствующую аннотацию в метод и во все остальные методы которые используют...

209
Как реализовать Enum чтобы использовать в Switch?

Как реализовать Enum чтобы использовать в Switch?

Как правильно реализовать данные чтобы в switch я мог передать position который int возвращяетА в case некое значение в виде названия

205
Не корректно работает функция

Не корректно работает функция

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

256