2013-12-03 3 views
0

Я разрабатываю приложения для мобильных устройств iOS и Android, используя Xamarin, но мой вопрос не связан с технологией.Как безопасно сохранять учетные данные в мобильном приложении?

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

Этот «логин» и «пароль» не связаны с пользователем, а являются общими для всего приложения.

Итак, вопрос в том, как безопасно сохранять эти данные для входа в приложение?

Есть ли хорошо известная архитектура, которая решает проблему с жесткой кодировкой?

ответ

1

Любые учетные данные, которые хранятся в приложении, могут быть выставлены пользователем. В случае Android они могут полностью декомпилировать ваше приложение и легко получить их.

Если соединение с сервером не использует SSL, их можно легко обнюхать с сети.

Серьезно, любой, кто хочет получить учетные данные, получит их, поэтому не беспокойтесь о их сокрытии. По сути, у вас есть открытый API.

Есть некоторые подводные камни, и для управления общедоступным API требуется дополнительное время.

Многие публичные API по-прежнему отслеживают по IP-адресу и реализуют tarpits, чтобы просто замедлять запросы с любого IP-адреса, который, как представляется, злоупотребляет системой. Таким образом, законные пользователи с одного и того же IP-адреса могут продолжать работать, хотя и медленнее.

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

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

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

+0

Спасибо за интересный ответ! – Antoine

+0

Удостоверьтесь, что вы повышаете любые полезные ответы, чтобы вознаградить нас за наше время. Спасибо. –

+0

+1 Я искал простое объяснение. Есть ли у вас учебник по этому вопросу? Если я правильно понял, вам нужно ограничить доступ к серверу на основе логинов. В моем случае (SAP с угловым/кордовым) при регистрации пользователю присваивается apikey, который будет отправляться с каждым запросом в webservice. Я хочу, чтобы пользователи регистрировались один раз (всегда регистрировались при запуске приложения), поэтому перенаправление когда приложение запускается на основе доступа (зарегистрированного/не) .my подход Я использую sqlite для хранения информации о стороне клиента, такой как apikey, ect имени .. Это также плохая практика? если бы я зашифровал их в db? – Awena

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