Как сохранить учетные данные для входа в систему с помощью Javascript? - PullRequest
2 голосов
/ 08 марта 2011

Я хочу добавить интеграцию со сторонним сервисом в веб-приложение (разработанное на HTML и Javascript), предназначенное для Android / iOS (и более поздней версии Windows Phone). Таким образом, я имею доступ ко всем «современным» функциям. Эта сторонняя служба нуждается в учетных данных и управляется через GET-параметры.
Например, URL-адрес запроса может выглядеть как "http://www.example.org/foo?username=user&password=1234".

Изменение стороннего сервиса для принятия хешированных паролей не вариант, так как у меня нет к нему доступа.

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

Теперь мне интересно, как лучше это сделать.
Я знаю, что настоящая «безопасность» - это иллюзия, но я не хочу подвергать учетные данные ненужным рискам, сохраняя их неправильным образом.

Я уже думал о нескольких возможных путях

  • Простое печенье: наиболее прямой путь - это "безопасно" хватит в этом сценарии?
  • DOM-Storage: Любые отличия от куки в этом отношения?
  • Зашифрованные файлы cookie: учетные данные будут зашифрованы, но вы могли бы легко узнать ключ при взгляде на исходный код страницу или отладку.

Какой из них выбрать? Есть ли лучшие способы?
Стоит ли беспокоиться о шифровании, когда его так легко взломать?

1 Ответ

2 голосов
/ 08 марта 2011

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

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

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

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

...