Vadim
это уже зависит от того кто как напишет
Ну-ну, ребята из Яндекса не умеют в хороший код?
Anonymous
Нативные модули хороши для трудоёмких вычислений, а в основном нужны какие-то мелкие. Ведь вызов нативного модуля сам по себе затратный. Как итог, считает быстрее, но вот чтобы начал считать и получить ответ нужно много времени
Хм, интересно. Я сравнивал методы снятия скриншотов и нативные модули из robotjs были самые быстрые. Но да, мне важна скорость снятия скриншота, а не его передача обратно в код
Олег
Ну-ну, ребята из Яндекса не умеют в хороший код?
не всегда у них одно время ... несколько лет назад, для интеграции яндекс кассы, лежал класс в репе ... то еще гавно было
Vadim
это уже зависит от того кто как напишет
Вот тут работает это правило))
Vadim
Нативные скриншоты это апи хромиума, то есть, вызов нативных процедур
Anonymous
Так и там, и там под капотом нативные модули))
Ну в стандартном электроне тебе нужно из мейна послать сообщение в рендер и там снять скриншот, поэтому лучше в моем случае robotjs
Anonymous
Но к нативности отношение не имеет
Vadim
Но к нативности отношение не имеет
Ты хочешь сказать, что хром скриншот рабочего стола, например, на JS делает?
Anonymous
Ты хочешь сказать, что хром скриншот рабочего стола, например, на JS делает?
Нет, я к тому, что мы отошли от изначального обсуждения
Vadim
в доку загляни, ссылка выше
Криптография, тема не раскрыта))
Anonymous
https://github.com/electron-userland/electron-builder/issues/1168
Anonymous
Единственное упоминание шифрования в электрон билдере
Vadim
NW.js and enclosejs are using the same technology to implement source code protection, by compiling JavaScript code into V8's snapshot code and force turning off optimization. This method sacrificed performance greatly, simple benchmark shows ~50% speed down, but considering the various optimizations done by V8, the performance of real apps will be much worse. And V8 never has plan of providing source code protection, so this situation won't change in future. On Electron's side we don't want to sacrifice performance for source code protection, and I'm closing this as won't fix. Ну да, такое
Завтра
Ну-ну, ребята из Яндекса не умеют в хороший код?
Компания и качество кода вещи вообще не связанные
Завтра
Вспоминаем релиз нового gmail, например)
Vadim
Компания и качество кода вещи вообще не связанные
Они про Яндекс.Карты писали на хабр про WebAssembly. Весьма занятная статья: https://m.habr.com/ru/company/yandex/blog/475382/
Vadim
Просто не хотелось писать, мол я мерял и вот что скажу, а так хоть отсылка на кого-то с хоть каким-то авторитетом)
Horus
к тому же, в electron-builder есть функционал, чтобы можно было использовать что-то свое для шифрования
Использовал прогу prepros electron+react. Там можно взять премиум для того чтобы диалоговое окно не бесило. Труда не составило вскрыть и удалить вызов диалогового окна. Скорее всего, все электрон приложения уязвимы
Horus
Почему же. Прога как раз таки упаковывалась билдером. Но в доке не нашел я способы шифрования
Horus
Можешь скинуть? Может проглядел
Олег
Почему же. Прога как раз таки упаковывалась билдером. Но в доке не нашел я способы шифрования
ну наверное потому, что удаление вызова производилось в хромиуме, а он никак не относится к контенту, который в него загружается
Vadim
"все электрон приложения уязвимы" Фраза ламера, который не умеет в низкоуровневое программирование и даже в гуглинг. Ведь все зачем-то добавляют лишнее слово "электрон", а нужно так: "все приложения уязвимы, а то что попало на компьютер юзеру, по умолчанию достояние юзера" А дальше уже дело в том, кто попадется, почему-то платные проги постоянно взламывают и выкладывают. Не важно C#/C++/Java всегда есть возможность что-то подправить. А дальше идут уже навороты, можно усложнять реверс, добавлять кучу прверок, etc. Но это не зависит от технологии, а только от необходимости и компетенции прогеров.
Horus
"все электрон приложения уязвимы" Фраза ламера, который не умеет в низкоуровневое программирование и даже в гуглинг. Ведь все зачем-то добавляют лишнее слово "электрон", а нужно так: "все приложения уязвимы, а то что попало на компьютер юзеру, по умолчанию достояние юзера" А дальше уже дело в том, кто попадется, почему-то платные проги постоянно взламывают и выкладывают. Не важно C#/C++/Java всегда есть возможность что-то подправить. А дальше идут уже навороты, можно усложнять реверс, добавлять кучу прверок, etc. Но это не зависит от технологии, а только от необходимости и компетенции прогеров.
Ну хз конечно. Да, я не умею в низкоуровневое программирование, но вскрыть asar архив много знаний не нужно. А приложухи на c++, с# и т.д., вроде как архиватором не открываются и не правятся. Я к тому, что електрон не имеет защиты своих данных "исхоропки"
Horus
"хакерами" ключевое слово
Vadim
А чтобы править обжатый JS, нужно знать JS, чтобы править плюсы, нужно знать плюсы
Horus
Справедливо. А хотелось бы, чтобы было всё из коробки. Собрал приложение и какой нибудь школьник его не взломал архиватором
Horus
Почему нет. 30 минут гугления и проб дадут свои плоды, если он так захочет. А разбираться в дезассемблерах и т.п. он врятли будет очень долго
Horus
Править оперативную память через cheat engine умеют ведь😁
Vadim
Видно что никогда не пробовал)) Это не так и сложно, если не было цели обжать результирующий исполняемый файл, что есть не тривиальная задача.
Horus
Обжать это значит минифицировать? Ты это имеешь ввиду?
Vadim
Обжать это значит минифицировать? Ты это имеешь ввиду?
Не совсем. вот список методик, но это другой уровень, для этого действительно нужно много опыта, как чтобы сделать, так чтобы и раскрыть https://www.securitylab.ru/blog/personal/aguryanov/151608.php
Anonymous
Справедливо. А хотелось бы, чтобы было всё из коробки. Собрал приложение и какой нибудь школьник его не взломал архиватором
В любом случае твою аппу взломают, дело заинтересованости. Можно даже на js слегка усложнить жизнь школьнику. А вообще нужно тогда делать привязку к интернету например ну или предоставлять какие-то услуги вроде саппорта. Но в целом среднестатистическому Джону из штата Вайоминг не сдалось править твою аппу или качать ее с торрента, ему проще заплатить 50 бачей и жить спокойно
Anonymous
Вопрос хайвмайнду. Никто не сталкивался на маке с проверкой включена ли аппа в список Security & Privacy -> Accessibility ?
Anonymous
Нет, найдешь ответит отпишись плиз))
Похоже, что не найду и нужно будет лепить костыли
Vadim
Похоже, что не найду и нужно будет лепить костыли
Костыль оформленный в npm пакет, автоматически приобретает статус велосипеда)))
Anonymous
Костыль оформленный в npm пакет, автоматически приобретает статус велосипеда)))
Хотелось бы посмеяться над этой шуткой, но это реальность бытия 🙁
Electron.js releases
v10.0.0-nightly.20200209 https://github.com/electron/electron/releases/tag/v10.0.0-nightly.20200209 v10.0.0-nightly.20200209
Alexiagray
кто пробовал связку electron / nextjs / typescript?
Завтра
хочется людям лишние прослойки юзать 💁🏻‍♂️
Andrey
Возможно его используют для архитектуры и плюшек из коробки)
Alexiagray
да че вы норм все но это конечно не сравнится со swift
Alexiagray
электрон чет жрет много и тащит сам по себе лишнего много((
Alexiagray
но побаловаться норм
Andrey
Сделал эелектрон эпп. Теперь хочу, чтобы каждый человек использовал свой авторизационный токен(чтобы двое не использовали один токен). Как мне от этого защититься? Авторизация идет через рест(тупо отправляется токен а в ответ саксес). Есть вариант с сокетами, чтобы хотя бы двое одновременно не использовали, но не хочется держать постоянно коннекты.
Andrey
Главное, чтобы несколько людей не использовали один токен одновременно
Andrey
Но в то же время нельзя привязываться к одной машине
Андрей
Главное, чтобы несколько людей не использовали один токен одновременно
Поменяй логику выдачи токенов и будет тебе счастье) либо сессии введи.
Andrey
на какую например?
Андрей
Andrey
Да
Андрей
Главное, чтобы несколько людей не использовали один токен одновременно
Куча вариантов. Храни авторизацию токен на бэке и потом валидируй исходя из своих условий. У тебя условие очень размыто, чтобы конкретно что-то написать.
su
Куча вариантов. Храни авторизацию токен на бэке и потом валидируй исходя из своих условий. У тебя условие очень размыто, чтобы конкретно что-то написать.
токен авторизации не хранится на беке, а генерируется на беке, и отдается клиенту, для использования своего АПИ, либо генерируется на стороннем сервере авторизации, и клиент забирает его самостоятельно, используя callback, так-же, на бек ничего не передается.
su
Главное, чтобы несколько людей не использовали один токен одновременно
ну тогда просто создавай токен на беке, и отдавай клиенту. сохранять его на беке нет необходимости
Andrey
Ребят, наверное мало инфы дал. Приложение электрон, оно само по себе не зависит от сервера и может работать без него. Сейчас нужно сделать так, чтобы это приложение можно было контролировать на уровне "рабочее/не рабочее". Решил просто генерить рандомный токен и на сервере просто хранить список "рабочих" токенов. Но в довесок нужна логика, которая говорила бы людям "не используй более одной учетной записи(токена) в один момент времени(погрешность 30-90 сек). Решил сделать так: при первом запуске авторизация(проверка на работоспособность токена) и соотношение мак адреса клиента с токеном. Далее пинг с передачей мака и токена, а на сервере проверяется, если соотношение мака с токеном не верное, то закрывается программа. А неверное соотношение может быть в случае, когда второй логин перебивает линковку мака с токеном, и соответственно первый уже невалидным получается
Andrey
Спасибо за накиданные идейки)
Завтра
Вопрос звучит супернепонятно Я не хочу два девайса с одним токеном, но при этом не хочу ограничивать юзера одним девайсом Наверное, стоит определиться)
Завтра
Тогда можно поднять вебсокет, коннектить к нему клиент и если такой уже онлайн, выкидывать
Andrey
типа разные девайсы по очереди можно юзать с одним токеном, но не одновременно
Andrey
сокеты - был вариант и хороший, но условие - без них)
Завтра
тогда просто роут и временно класть токен в массив 💁🏻‍♂️
su
Ребят, наверное мало инфы дал. Приложение электрон, оно само по себе не зависит от сервера и может работать без него. Сейчас нужно сделать так, чтобы это приложение можно было контролировать на уровне "рабочее/не рабочее". Решил просто генерить рандомный токен и на сервере просто хранить список "рабочих" токенов. Но в довесок нужна логика, которая говорила бы людям "не используй более одной учетной записи(токена) в один момент времени(погрешность 30-90 сек). Решил сделать так: при первом запуске авторизация(проверка на работоспособность токена) и соотношение мак адреса клиента с токеном. Далее пинг с передачей мака и токена, а на сервере проверяется, если соотношение мака с токеном не верное, то закрывается программа. А неверное соотношение может быть в случае, когда второй логин перебивает линковку мака с токеном, и соответственно первый уже невалидным получается
я не могу понять, что ты пытаешься сделать. для чего у тебя в приложении electron все вот это. оно запускается на сервере, в терминале?
Andrey
нет, подобие бота кликера(с логикой кликов), который хочу защитить от свободного распространения
Andrey
сервер только для защиты и все
Завтра
лол
Завтра
щас бы пытаться защитить фронтенд
Andrey
есть предложения?
Завтра
не страдать ерундой, например)
Andrey
отличный совет) еще варианты?