2014-09-12 2 views
1

Предполагая, что у меня есть клиентское приложение Android, которое вызывает веб-службы для получения некоторых данных из базы данных с удаленного сервера, что означает, что в какой-то части моего кода я буду использовать URL-адрес бэкэнда для вызова API-интерфейсов, которые мне нужны, теперь, вероятно, теперь есть компиляторы Android, которые получают исходный код файла APK, что означает, что URL-адрес, который я использую для вызова API, может быть подвергнут кому-то, который декомпилирует мое приложение , что является основной проблемой, которую я хочу избежать, даже если я обеспечил свой удаленный сервер аутентификацией, будь то базовый или дайджест или что-то еще, я все же не хочу, чтобы мой URL-адрес API был подвергнут кому-то из первого место, как я могу избежать этого, есть ли какой-то алгоритм, который мог бы декодировать мой URL внутри моего кода, поэтому, когда мой APK будет скомпилирован, что адреса этих API, которые я вызываю, не будут отображаться?Android-Как защитить мой исходный код

+0

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

ответ

0

Невозможно предотвратить получение злоумышленником URL-адреса. У вас должен быть какой-то apikey или пароль, уникальный для каждого пользователя, чтобы предотвратить несанкционированный доступ к вашему api.

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

-2

Ваш код может быть запрограммирован в обратном порядке практически в каждом случае, даже если вы используете Androids built-in obfuscator. Вы можете сделать его более сложным для злоумышленника. Так что включение apikey или пароля тоже не работает - потому что эту сверхсекретную информацию также нужно где-то хранить.

Но большая проблема: Мониторинг сетевого трафика не покажет местоположение URL сервера в любом случае, независимо от того, что вы делаете.

Таким образом, единственным решением является разработка вашего сервера таким образом, чтобы он мог обрабатывать запросы «зла». Вокруг нет никакого способа, иначе ваш сервер может быть взломан! Итак ...

  • Вы не хотите, чтобы кто-нибудь знал ваш сервер? невозможно
  • Вы хотите ограничить запросы пользователя? Практически невозможно. Если это будет легко, атаки «Отказ в обслуживании» будут ушли в прошлое. Ограничение количества запросов на IP-адрес - это начало, но не безупречное, поскольку мобильные телефоны часто меняют свой адрес.
+0

почему пустые голоса? – PhilLab

+0

был не мной ... :) – user2469133

+0

, но вы можете ошибаться в том, что «Мониторинг сетевого трафика покажет URL-адрес в любом случае», если соединение было зашифровано с помощью SSL, например, снифферы пакетов не должны показывать запросы url – user2469133

Смежные вопросы