Хранение конфиденциальных данных в Vuex - PullRequest
0 голосов
/ 03 октября 2019

Подводя итог, мы используем Vue на внешнем интерфейсе и Hapi JS на заднем. Внешний интерфейс использует MSAL.js для аутентификации пользователей, а затем передает маркер доступа к внутренней части. Токен доступа декодируется с помощью hapi-auth-jwt2, а функция validate() возвращает { isValid: true, credentials : { ps_ref: 12345, md_userid: asfasgsg@5874.com }}. Этот объект затем передается в функцию-обработчик маршрута, которая извлекает группы аутентификации / роли пользователя (т.е. Auids) из нашей БД и пользовательских данных и возвращает их.

Представьте, что пользовательский объект выглядит следующим образом:

{
  Auids: (4) ["user", "webadmin", "accounts"]
  md_clock: 5678
  md_picture: "./images/"
  ps_fname1: "Test Name"
  ps_surname: "Test Surname"
  psname: "Test Name Test Surname"
  psref: 125125
}

Теперь мы хотели бы сохранить этот объект в Vuex, однако мы обеспокоены тем, что он будет виден любому, кто имеетустановил Vue Devtools в свой браузер или любого, кто выполняет что-то вроде rootElementOfApp.__vue__.$store

Наши вопросы:

  1. Насколько легко кому-то получить доступ к Vuex на производстве? ?

  2. Если общественности достаточно легко получить доступ к Vuex, является ли Vuex лучшим способом хранения этого объекта? Если мы пойдем на Vuex, должны ли мы кодировать пользовательский объект или хотя бы Auids в нем?

1 Ответ

1 голос
/ 03 октября 2019

Все, что вы храните в js / html / cookies, не сохраняется само по себе. Но все это связано с тем, как вы будете управлять этим. По сути, вы можете хранить практически все в интерфейсной части, если только эти конфиденциальные данные не пригодны для этического взлома. Такие вещи, как адреса, номера контрактов, банковские счета и т. Д.

Такие данные, как userIds (если они используются только для программных целей) или роли пользователя, могут храниться во внешнем интерфейсе. Но если вы делаете это правильно, у вас всегда есть все проверки на стороне клиента и в вашем фоновом приложении.

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

...