Подтвердить что ты не робот

Защита связи от android до веб-службы

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

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

Каким образом можно безопасно отправить эту информацию и сохранить пользователя в течение всего сеанса?

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

Ответ 3

Вы можете использовать случайный ключ на основе сервера и локальный ключ на основе imie вместе с уникальным токеном пользователей для логики. Вы можете указать время истечения срока действия для каждого ключа