Какие рекомендации следует учитывать при отправке имени пользователя и пароля на сервер аутентификации? - PullRequest
1 голос
/ 01 февраля 2012

Мне интересно, о каких вещах нужно помнить при отправке имени пользователя и пароля на сервер аутентификации с использованием ajax. Я использую phoneGap и jQuery для разработки веб-приложения, к которому я очень новичок, и я хочу убедиться, что я поступил правильно. Любой совет приветствуется.

Ответы [ 3 ]

2 голосов
/ 01 февраля 2012

Вы должны использовать механизм вызова-ответа.

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

Сервер должен хранить предварительно посоленные хеши паролей в своей базе данных.
Затем он должен хешировать сохраненный хеш с одноразовым номером и сравнивать его с хешем от клиента.

Это не позволяет злоумышленнику узнать исходный пароль, даже если злоумышленник является активным посредником и украл базу данных.
Однако, если злоумышленник похитит базу данных, он сможет войти в систему, минуя ваш пользовательский интерфейс и используя известный хеш.

1 голос
/ 01 февраля 2012

Это приложение, которое вы разрабатываете самостоятельно, или вы будете общаться с существующим веб-сервисом?

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

Основной процесс выглядит следующим образом:

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

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

0 голосов
/ 01 февраля 2012

Я использовал примеры Раймонда.Также у меня есть хэш-пароль на стороне клиента.

http://www.raymondcamden.com/index.cfm/2011/11/10/Example-of-serverbased-login-with-PhoneGap

...