Поскольку мой веб-сервер не позволяет использовать ключевые слова PHP_AUTH_USER
и PHP_AUTH_PW
из-за CGI (Col. Shrapnel in 'PHP_AUTH_USER not set?') Я изучаю другие способы отправки пароля пользователя на сервер.Отправка паролей на сервер
Отправка пароля в виде открытого текста с использованием POST - это не пропуск: захват пакетов и просмотр заголовка показывает пароль. Так что я мог бы сначала ввести пароль. Но кто-то перехватывает пакет и копирует хэш и имя пользователя, все еще может использовать эту информацию, верно?
Создание динамического хеша с использованием метки времени может предотвратить копирование хэша. Отправка пароля как (timestamp + hash(password+timestamp))
(Last.FM использует что-то вроде этого). Затем сервер может вычесть временную метку (проверьте, не истекает ли она или что-то еще) и хеширует с ней известный пароль и проверяет, совпадают ли они. Но тогда пароль должен быть известен серверу, поэтому остается вопрос:
Как безопасно получить этот пароль на сервере после регистрации?
Затем есть https, требующий сертификата SSL, который недоступен для меня (не стоит денег (еще?)).
Любые мысли?
p.s. В конце концов, я хочу аутентифицировать приложение Android против своего веб-сервера.
Имеются бесплатные сертификаты ssl, и если вы не возражаете против ошибок, которые просматривают браузеры на самозаверяющих сертификатах, вы всегда можете сделать свой собственный. –
Это меняет ситуацию. Я посмотрю на это. – nhaarman
Самостоятельные сертификаты. Отказ не будет, поскольку он зависит не от пользователя, а от вашего сервера и вашего клиента. Кроме того, хеширование и добавление метки времени могут ... – Alfabravo