Я делаю приложение на Android, которое позволяет пользователю, получив имя и пароль, изменить свой профиль с помощью веб-интерфейса API.
Я установил систему для возврата после проверки подлинности уникального токена безопасности, который будет использоваться для проверки подлинности пользователя для выполнения операций (обновления профиля).
Я впервые использовал такой URL, к которому у пользователя есть доступ (логин):
webserver.com/?login&user=michael&password=7c4a8d09ca3762af61e59520943dc26494f8941b
Затем, если данные верны, остальные API возвращают уникальный токен в приложение для Android. Приложение для Android хранит этот уникальный токен для make, пока пользователь не закроет сеанс обновления своего профиля.
Я использовал для обновления URL-адрес, как это:
webserver.com/?update&token=ee977806d7286510da8b9a7492ba58e2484c0ecc&newname=mathews
Затем, когда пользователь закрывает сеанс (в приложении Android), я удаляю токен с веб-сервера через другой URL-адрес …
Это хорошая система? Это мой токен «безопасно»?
Я храню эти URL (без значения параметров) в константах моего приложения для Android … Это безопасно? Я могу сделать иначе?
Нет, это не безопасно. Никогда не помещайте учетные данные в URL-адрес, поскольку URL-адреса имеют тенденцию регистрироваться во многих разных местах, оставляя учетные данные открытыми для третьей стороны. Используйте тело HTTP для такого рода вещей.
Всегда используйте зашифрованный SSL / TLS для передачи учетных данных. Или используйте криптографическую систему, такую как OAuth1, чтобы избежать отправки учетных данных в виде открытого текста. OAuth1 определяет схему подтверждения владения учетными данными без их фактической отправки.
Используйте заголовок авторизации HTTP для токенов. Ищите «http token token».
На этот вопрос есть несколько очень полезных ответов о том, как сделать ваши сообщения более безопасными:
Как безопасно отправить пароль через HTTP?