Что мешает загружать Javascript SDK Ionic Security сайтами злоумышленников? - PullRequest
1 голос
/ 09 июля 2019

В документации Ionic JS SDK упоминается, что postMessage API используется для связи с внутренним кодом SDK iframe. Профили устройств хранятся в localStorage в пределах видимости источника iframe.

Что мешает загружать код SDK JS (и последующий iframe) на вредоносный сайт и использовать его для доступа к профилям, которые пользователь создал для шифрования / дешифрования данных?

1 Ответ

1 голос
/ 09 июля 2019

Для создания нового профиля устройства приложения должны вызвать функцию enrollUser;см. https://api.ionic.com/jssdk/latest/Docs/tutorial-device_enrollment.html

Из документов

При успешной аутентификации в течение 10-минутного интервала ожидания профиль регистрации хранится в зашифрованном виде в localStorage под appId, userId иПроисхождение вызывающего приложения.

Таким образом, профиль хранится в зашифрованном виде.Профили также хранятся как вложенные и имеют пространство имен по origin, appid и userId, как показано ниже (см. Функцию queryProfiles в ProfileManager.js):

profile [origin][appId] [userId]

Обратите внимание, что информация origin берется из объекта события postMessage, полученного кодом ядра sdk, работающим внутри iframe.

The loadUser функция принимает те же параметры, что и enrollUser, и выполняет обратную операцию, загружая профиль из localStorage и расшифровывая его.

Итак, в итоге

Что мешает загружать код SDK JS (и последующий iframe) на вредоносный сайт и использовать его для доступа к профилям, которые пользователь создал для шифрования / дешифрования данных?

Приложение должно иметь доступ кте же appId, userId и userAuth значения и будут работать на одном и том же origin для получения доступа к профилю, созданному другим приложением.

На практике

  • appId жестко запрограммирован для данного приложенияПликации (т.е. в js / html)
  • userId и userAuth хранятся в объекте сеанса пользователя приложения.Эти значения могут быть либо получены с помощью ajax-запроса на исходный сервер приложения, либо записаны в html приложения.Это похоже на обычные методы обработки для токенов CSRF .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...