Завтра
не, это быстро
Артем
а нет случаем где-то инсайда о включении 12 ноды в электрон?
Vadim
5+ electron вроде тянет 12 ноду
Horus
А кто нибудь пробовал работать с mysql напрямую без api? 2 месяца назад пробовал, но пакет не обновляли, поэтому он не работал то-ли с протоколом то-ли с методом шифровки пользователя, не помню уже. Сейчас может дела получше обстоят
Vadim
не, это быстро
У меня 40-50ms на JSON.parse строки в памяти размером 400Кб(немного промахнулся с размером массива, хотел 300)
Завтра
ну вроде норм
Vadim
Это относительно мало, но если учесть что подобные моменты имеют свойство накапливаться, везде немного, а в сумме приложение долго грузиться. Хотя вспомним продукты JetBrains и успокоимся)
Завтра
Ну вот типа того. Тем более, далеко не у всех будет столько данных - чаще всего такое юзают, чтобы сохранить пару настроечек типа темы, токена какого-нить итд
Завтра
У менея там хранится много данных, которые в идеале бы хранить на сервере, но мне лень
Завтра
Не, у меня не картинки)
Anton
Мужики, а такой вопрос. Я сейчас в локалсторедже сохраняю пару настроек пользователя. Но если юзер залогиниться под другой учеткой, то подтянуться применятся настройки первого. Как бы это зафиксить? Создавать для каждого юзера отдельный объект в сторедже не хочется. Что бы у второго юзера не было доступа к настройкам первого
Сергій
Заносить айдишку юзера в настройки и чекать
Сергій
А что бы не было доступа, закрываешь консоль в билде
Danila
Может просто чистить хранилище при авторизации? )
Danila
и при выходе
Anton
А можно ли как то исхитриться и прочитать весь локалсторедж? Девтулзов в билде нет
Anton
и при выходе
Тогда когда первый зайдет - а все настройки слетели
Danila
Тогда лучше хранить их не в localStorage, а в main-процессе и получать через сообщения
Danila
но всё равно это не гарантия, никак
Danila
гарантия - хранение на удаленном сервере и получение при авторизации
Danila
не в самом процессе, разумеется
Danila
короче хранить средствами ноды и передавать в renderer по запросу с клиента
su
гарантия - хранение на удаленном сервере и получение при авторизации
если приложение offline, то не сохранять, а так-то да, просто шлепай по REST на сайтик какой-нить, Авторизация туда-же, вот при первом логине и грузи все настройки пользователя, а если identity server свой, то еще можно и кучу настроек в claims для JWT запикуячить
Anton
Ок, спасибо, нужно будет обсудить на сколько сильно по поводу секьюрности упарываться
Артем
Что значит настройки юзера, для начала? Юзеры программы или юзеры операционки?
Артем
Если юзеры операционки, то и сторедж норм будет ) а если локальные проги, то можно пойти путем кодирования сохраненки ключом юзера, паролем, к примеру
su
Если юзеры операционки, то и сторедж норм будет ) а если локальные проги, то можно пойти путем кодирования сохраненки ключом юзера, паролем, к примеру
я думаю, что вооще тогда, можно запилить win32-api из npm и для других операционок похожее и вообще нативное хранилище дергать, то что за main, в OS
Артем
Да просто в хоме юзера хранить в файле... Это нормальная практика в принципе )
Electron.js releases
v8.0.0-nightly.20190821 https://github.com/electron/electron/releases/tag/v8.0.0-nightly.20190821 v8.0.0-nightly.20190821
Anton
Спасибо за наводку
Артем
Спасибо за наводку
не за что, станет мало - шифруйте данные при изменении/сохранении хешем пароля юзера, а при запуске, соответственно, считывайте их расшифровывая тем же хешем...
Артем
не думаю, что найдется какой-то параноик, который попытается вскрыть это - ну, если только, там у вас не хранятся "ключи от квартиры с деньгами"
Anton
Но тогда придется хранить пароль, а это не кошерно
Vadim
Но шифровать "хешом пароля" !== "паролем"
Anton
Но шифровать "хешом пароля" !== "паролем"
Сорян не внимательно прочитал
Anton
У меня пользователь не всегда вводит пароль когда открывает апп
Anton
Если поставил галку запомнить меня - я сохраняю токен и при следующем заходе уже не нужна регистрация
Артем
алгоритм: - запустилось приложение - юзер ввел логин+пасс - если авторизация успешная получаем хеш пароля - читаем и расшифровываем сохраненные данные в память .... юзер работает с данными в памяти ... - при сохранении шифруем данные хешем из шага 3 если в процессе юзер сменил пароль, то полчаем новый хеш...
Артем
токен, в некотором роде и есть хеш пароля, если что =)))
Артем
хотя... надо подумать, но ничего не мешает в токене первые 32 символа, например, отвести под md5 пароля...
Артем
если юзер разавторизуется, то чем шифровать? токеном? так при следующей авторизации токен другой будет и данные не расшифруешь
Vadim
Тогда не должны они храниться на клиенте.
Anton
Должны оставаться
Артем
я так понимаю, у человека приложение должно какие-то юзерские данные хранить локально =) это не кошерно, конечно, когда данные "секурные", но иногда альтернатив нет...
Артем
Тогда не должны они храниться на клиенте.
не все приложухи имеют клиент-серверную архитектуру =)))
Vadim
О какой авторизации тогда идет речь)
Артем
особенно, если авторизация чья-то внешняя, типа OAuth2
Anton
Не там особо ничего такого нет. Просто не хоцца все по красоте сделать
Vadim
особенно, если авторизация чья-то внешняя, типа OAuth2
OAuth2 тебе пароль не даст, а только токен
Vadim
Который каждый раз будет разный
Anton
Естественно, авторизация только онлайн, но в принципе апом можно пользоваться и оффлайн
Anton
После логина
Anton
Вот это мне и не особо нравится. Что токен в открытом виде в локал сторедже лежит
Vadim
Ну а как иначе)
Vadim
Какая секюрность на клиенте)
Артем
Anton
Какая секюрность на клиенте)
Сделать мини шифровшик
Артем
А вообще, даже локальную авторизашку можно реализовать. От глубокого криптоанализа она не спасет, но "от дурака" закроет )
Anton
От особо настойчивых не спасет, но хоть в открытом виде не будет
Артем
Просто при запуске предложить вводить персональный "пароль" + кнопка "новый профиль"... Ну и идентифицировать "профили" хешами пароля. Топорно и грубо, но простым юзерам хватит ) а упоротым и вскрывать не надо ничего, пррсто траф снифернуть и там точно токен будет в открытом виде
Артем
Троян все порешает )))
Vadim
Троян все порешает )))
Кей логер) Тут кто-то недавно интересовался этой темой)
Артем
От особо настойчивых не спасет, но хоть в открытом виде не будет
Давай так - ключевой вопрос. Под одним системным юзером операционки могут разные юзеры проги оказаться?
Артем
Если нет, то не парься, вопрос защиты на системе прав операционки. А если могут, то ни о каких "сохранить пароль" при авторизации речи не может идти - глупо как-то получается, если Вася сохранит, а Петя потом запустит и без авторизации окажется Васей в проге. А если нет токена, то "привет шифрование хешем пароля"...
Anton
Давай так - ключевой вопрос. Под одним системным юзером операционки могут разные юзеры проги оказаться?
Сори, не понял вопрос. На одной машине (компе) теоретически могут работать несколько юзеров (не одновременно) или у одного человека может быть несколько учёток.
Артем
Речь о том, что при входе на комп Вася и Петя могут авторизоваться как один некий "оператор" или у каждого своя учетка?
Anton
+ можно не ставить галку запомнить меня и
Anton
Если нет токена - прошу ввести логин/пароль
Anton
Без авторизации ни как