Обеспечение коммуникации от андроида до веб-сервиса

Я - относительный новичок к веб-и мобильной разработке и особенно к безопасности, таким образом, очевидные ответы все еще ценятся.

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

То, что лучший способ состоит в том, чтобы отправить этой информации надежно и сохранить пользователя, вошло в систему для всей сессии?

13
задан Trevor Johns 23 February 2010 в 20:01
поделиться

2 ответа

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

Если вы сами пишете веб-сервис, у вас есть много вариантов.

Самый простой - просто отправлять имя пользователя и пароль через SSL с каждым запросом в виде заголовка HTTP Authorization: . Обратной стороной является то, что вам необходимо сохранить имя пользователя и пароль на устройстве. При этом, из-за того, как работает система разрешений Android, существует очень небольшой риск того, что злоумышленник украдет учетные данные с устройства, при условии, что пользователь не включил root-доступ.

Если вы по-прежнему хотите избежать хранения пароля в виде обычного текста, вы можете отправить имя пользователя / пароль один раз (опять же, используя SSL), попросить сервер вернуть зашифрованный токен авторизации, а затем отправить этот токен вместо имени пользователя. /пароль. См. Пример этого в Google ClientLogin . Злоумышленник может украсть токен, если у него есть физический доступ к устройству, но, по крайней мере, злоумышленник не может использовать его для получения доступа к любым другим сайтам, использующим тот же пароль.

Есть и другие варианты, такие как использование запроса / ответа, чтобы сервер никогда не видел пароль пользователя, использование OAuth для предоставления общего API авторизации и т. Д. Все зависит от ваших конкретных требований.

19
ответ дан 1 December 2019 в 22:57
поделиться

Мы с другом хотим сделать то же самое, и я думаю, что мы решили хранить на устройстве ключ веб-службы, уникальный для пользователя, и использовать его для аутентификации, а не хранить un / pw (это это второй метод, предоставленный Тревором выше). Вам также необходимо предусмотреть средства для установки этого ключа на устройство.

1
ответ дан 1 December 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: