Разработка мобильных приложений - HTML5 LocalStorage против SessionStorage и Cookies - PullRequest
7 голосов
/ 03 мая 2011

Мы разрабатываем мобильное веб-приложение на платформе jQuery Mobile, которое требует от пользователя ввода имени пользователя и пароля.

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

Мы зашифруем этот пин-код и зашифруем строку идентификатора пользователя и сохраним как в LocalStorage, так и в Cookie.

Когда пользователь посещает приложение во второй раз, мы проверим, можно ли найти идентификатор пользователя и, если это так, предложат ему ввести пин-код.

Как только пин-код будет введен, мы безопасно (SSL) передадим пин-код и идентификатор пользователя для расшифровки и проверки на сервере.

Я читал в нескольких местах, что мы должны использовать Cookies вместо LocalStorage (с точки зрения безопасности). Согласитесь ли вы с этим и можно ли использовать файлы cookie на большинстве смартфонов?

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

Чтобы справиться с этим, я думал о сохранении значения в SessionStorage, так как я прочитал, что это более безопасно, чем LocalStorage, и срок его действия истекает при закрытии браузера. В качестве альтернативы мы могли бы снова использовать Cookies.

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

Заранее большое спасибо ...

1 Ответ

6 голосов
/ 03 мая 2011

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

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

...