2016-12-11 3 views
0

Я создаю веб-приложение с использованием рамки Cordova. Мой проект организован следующим образом:Гибридное мобильное приложение: Храните разумные данные на стороне клиента

root 
----- hooks 
----- platforms 
----- plugins 
----- res 
----- www 
--------- css 
--------- img 
--------- js 
--------- res 
--------- spec 

В моей папке JS, мне нужно, чтобы выполнить запрос HTTPS к отдаленному серверу, чтобы выполнить вход в систему. В моем приложении мне нужно максимально безопасно хранить SERVER_URL, USERNAME и PASSWORD.

Сегодня эти данные записываются непосредственно в виде строк в моих js-файлах.

Каков наилучший способ хранения этих разумных данных в проекте веб-приложения?

+0

Вы хотите аутентифицировать своего пользователя (человека) или самого приложения? Обратите внимание, что последнее невозможно, и для первого вы не храните учетные данные пользователя в js-файлах. –

+0

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

ответ

0

Правильная вещь, которую нужно сделать, - это OAuth2. Когда ваш пользователь впервые войдет в систему, он будет указывать имя пользователя и пароль (если первоначальная аутентификация основана на пароле, обычно это так), а затем сервер предоставит ему токен доступа, предназначенный для пользователя и устройства. Ваше приложение будет хранить токен доступа для пользователя, и ваше приложение должно хранить его в достаточно безопасном месте, т.е. решение keychain/keystore на мобильной платформе. Обратите внимание, что все равно будет очень актуальной угрозой, чтобы злоумышленник завладел токеном доступа, поэтому время от времени он должен быть недействительным на сервере и выпущен новый. Это может быть прозрачным для пользователя, если все идет по назначению. Также должно быть средство для пользователя, чтобы просмотреть токены доступа (например, его «устройства») и удалить доступ из тех, которые он больше не хочет получать к своим данным (т. Е. Удалить устройство в случае компромисс). В качестве дополнительного средства контроля безопасности вы можете отправлять электронные письма, когда предоставляется новый токен доступа (например, добавлено новое устройство) и т. Д.

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

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

URL-адрес сервера не является (и не должен быть) секретом. Любой, кто использует приложение, может очень легко узнать все равно.

Смежные вопросы