Я разрабатываю гибридное мобильное приложение с использованием HTML/CSS/JS, я перехожу к безопасности с регистрационной информацией, система, которую я создал, создает хэш после пользователь входит в систему, этот хэш имеет ограничение по времени и устанавливается через LocalStorageБезопасность в приложении на основе Javascript - восстановление хэша пользователей
по сути, я бы что-то вроде этого LocalStorage:
hash
5f4a09cfec2a6d8f306eecb3844e33e9
hash_expiration
1373012945
password
*encryted user password*
Этот хэш отправляется на мой сервер для проверки в заголовке все мои запросы AJAX (в сопровождении идентификатора пользователя для соответствия базы данных)
Я в основном открываю эту тему, чтобы обсудить лучшие практики о том, как бороться с воссозданием хеш-ключей, мне нужно выяснить способ обновления хэш-ключа пользователя.
Учитывая мой опыт работы с AJAX и JS все еще весьма ограничены, я думал об использовании установки AJAX для проверки новой хэш, например, так:
$.ajaxSetup({
beforeSend: function(xhr, settings) {
var time = new Date().getTime(); //unix time
var hash_time = localStorage.getItem("hash_expiration");
if(time>hash_time){
//ajax request to fetch new hash, async: false to make sure this completes before continuing with other AJAX calls
}
}
});
Я бы отправить идентификатор пользователя и его зашифрованный пароль проверить его и вернуть новый хеш.
Должен ли я отправлять запросы AJAX в ajaxSetup перед отправкой? Как это может противоречить другим требованиям beforeSends в моем приложении?
Мне нужно было бы прослушать все запросы ajax и проверить 401 - Несанкционированный, если мой запрос получает 401 - Несанкционированный Мне нужно отправить новый запрос для нового хеша, между тем мой пользователь получает ошибку из-за 401 - Несанкционированный. Hmm .. –
этот процесс должен быть сделан за сценой, пользователь не должен видеть ошибки. Не забудьте - консоль браузера предназначена только для вас - для разработчика. –
То, что я говорю, представьте, что пользователь нажимает на страницу, я проверяю хэш, и это неправильно, пользователю нужен новый хеш - поэтому я отправляю запрос на новый хэш, но пользователь уже нажал эту страницу, но поскольку его хэш был недействительным на время этого жмем - я не позволяю ему в –