Какой безопасный способ кэширования учетных данных для ajax-клиента в браузере? - PullRequest
1 голос
/ 05 октября 2011
  1. Пользователь входит в многофункциональное веб-приложение через свой браузер
  2. Пользователь вводит учетные данные для входа.Учетные данные кодируются и кэшируются.(Учетные данные предназначены для клиента REST в браузере, который будет использовать xhr для взаимодействия с сервером.)
  3. Пользователь выполняет различные задачи / обновления, каждое из которых выполняет запрос ajax, передавая закодированные учетные данные (базовая аутентификация).через https).
  4. Пользователь нажимает на ссылку, по которой он переходит на другой ресурс (происходит перезагрузка полной страницы, а не меньший запрос ajax).

Поскольку все приложение используетвнутренний клиент REST, каждый запрос должен передавать учетные данные.У меня нет проблем, запрашивая у пользователя эти учетные данные, когда он впервые заходит на сайт.Вопрос в том, какой самый безопасный способ хранить его зашифрованное имя пользователя / пароль?Если бы это было одностраничное веб-приложение, я думаю, это можно было бы безопасно кэшировать в памяти.Однако, поскольку пользователь иногда переходит на другие ресурсы (шаг 4), я хотел бы разрешить ему продолжить работу без повторной аутентификации.Это должно включать где-то кэширование его учетных данных (в cookie или localStorage?).В любом случае мне нужно получить доступ к его уже предоставленным учетным данным, чтобы клиент мог продолжать передавать их при каждом запросе даже после полной перезагрузки страницы.

Я заинтересован в том, чтобы сделать это безопасным способом.Есть ли лучшие практики для этого?

1 Ответ

2 голосов
/ 06 октября 2011

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

Вы можете выбрать шифрование / дешифрование входящей и исходящей информации из всего, что вы выберете:

https://stackoverflow.com/questions/2299434/bcrypt-implementation-in-javascript

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...