Eugene
Мне лень vs code запускать, т.к запущено много другим программ
Eugene
Тебе надо через ipcMain в main.js передать данные
Eugene
Потом в preload их получить и обернуть/засунуть в contextBridge
Eugene
А в render.js уже юзаешь window.твойОбъект
Eugene
preload.js
Александр
Завтра попробую
Григорий
залил "релиз" тестового приложения и настроил управление обновлением через диалоговое окно, сразу спрашивает есть обновление, скачать или нет - если нажать нет тогда все ок если нажать нажал скачать, потом новый диалог установить сейчас или нет - если отменить то как бы просто обновление будет в ожидании и после закрытия окна оно автоматически обновится можно как-то запретить автообновление до следующего запуска, пока пользователь не нажмет установить обновления?
Григорий
например в фигме заметил там обновления качаются автоматически и при запуске дают выбор, либо сейчас либо после перезапуска будет установка
Григорий
но все же больше интересно полностью контролировать обновления
Nicky
Всем привет. Ребят, подскажите пожалуйста, как я могу вызвать nodejs модуль по колбэку в реакте при использовании electron?
Григорий
на сколько не безопасно отключать contextIsolation? пишет что для безопасноти необходимо отключать nodeIntegration но если отключен contextIsolation можно так же получать доступ к файловой системе
Eugene
Смотри выше
Nicky
ля, да че ж вы все с одним вопросом
да я уже нагуглил. Потому что дока не ахти)
Eugene
я писал уже об этом
Григорий
я писал уже об этом
а если так?)) на сколько не безопасно отключать contextIsolation? пишет что для безопасноти необходимо отключать nodeIntegration но если отключен contextIsolation можно так же получать доступ к файловой системе
Nicky
я писал уже об этом
а зачем через window? Я вот способ нашёл через ipcRenderer
Eugene
У меня ipcRender в vue не работал
Григорий
а зачем через window? Я вот способ нашёл через ipcRenderer
защита, по идее самый безопасный способ это через мост
Nicky
защита, по идее самый безопасный способ это через мост
а ipcRenderer не мост? Ты же данные передаёшь через событие в ограниченном контексте, а window как раз таки не оч безопасно считаю - глобальный же объект
Григорий
А за что он отвечает? я уже и не помню)
блин такое ощущение будто три калеки на весь континент изучают электрон...
Nicky
ну просто смотря где ты вызываешь ipcRenderer
а мне прям в колбэке реги нужно вызвать событие, которое попросит node module соединиться с базой
Eugene
Ты вызываешь window.registerUser(), в main.js обрабатываешь это и вызываешь нужный модуль
Nicky
ну типа самая безопасная передача данных
а центральный скрипт в какой среде выполняется?
Nicky
loader
я не знаю такой среды. Я знаю среду серверную (process) и браузерную (рендерер)
Григорий
если у тебя нету лодера, значит ты работаешь через nodeIntegration true
Nicky
ааа значит process
Nicky
а почему в process? почему сразу ipcRenderer не вызвать в renderer?
Григорий
если у тебя nodeIntegration true значит хацкеры могут залезть через твое приложение очень легко в комп
Григорий
и даже спалить его
Nicky
как? Как это работает?
Григорий
хочешь стать хацкером?)))
Nicky
есть статьи?
Nicky
нет, я хочу написать безопасное приложение
Григорий
статьи где описывают печальное завершение хакерской атаки?))
Nicky
понятно. Что-то где-то как-то слышал, но никто ничего никогда не видел. Мне так же говорили что не стоит токены в localstorage хранить - хацверы всё украдут. Пока ни разу не видел чтоб хацкеры что-то из ls угнали, ни разу ни от кого не услышал как это возможно хотя бы теоретически
Nicky
и когда под соусом безопасности говорят ээй чувак, используй window - это безопаснее, ну я фэйспалм ловлю)
Григорий
а ломать комп тоже очень сложно с учетом того что часть у всех стоят антивиры и материнка отключается от перегрева, если кто-то захочет сломать комп) и на этом все закончится)
Григорий
https://cloud.mail.ru/public/4KNm/5ryMDE1RW
Григорий
на качай, тут не плохо учит для старта, даже релиз и автоообновление приложение есть
Григорий
и нету возможности у кого-то спросить ... только в дискорде электрона там помогают, но там на английском все
Григорий
правда там старая версия и обязательно нужно будет отключить contextIsolation если захочешь прям все за ним повторять
Григорий
а кстати там реакт
Anonymous
𝐇𝐞𝐥𝐥𝐨 𝐞𝐯𝐞𝐫𝐲𝐨𝐧𝐞 𝐈'𝐦 𝐯𝐞𝐫𝐲 𝐡𝐚𝐩𝐩𝐲 𝐦𝐞𝐞𝐭𝐢𝐧𝐠 𝐭𝐡𝐢𝐬 𝐛𝐞𝐬𝐭 𝐨𝐩𝐩𝐨𝐫𝐭𝐮𝐧𝐢𝐭𝐲 𝐢𝐧 𝐦𝐲 𝐥𝐢𝐟𝐞 𝐭𝐡𝐢𝐬 𝐡𝐚𝐯𝐞 𝐜𝐡𝐚𝐧𝐠𝐞𝐝 𝐦𝐲 𝐥𝐢𝐟𝐞 𝐈 𝐜𝐚𝐦𝐞 𝐚𝐜𝐫𝐨𝐬𝐬 𝐭𝐞𝐬𝐭𝐢𝐦𝐨𝐧𝐲 𝐥𝐢𝐤𝐞 𝐭𝐡𝐢𝐬 𝐨𝐧 𝐚 𝐠𝐫𝐨𝐮𝐩 𝐚𝐧𝐝 𝐢 𝐣𝐮𝐬𝐭 𝐠𝐢𝐯𝐞 𝐢𝐭 𝐚 𝐭𝐫𝐲 𝐰𝐢𝐭𝐡 𝐥𝐢𝐭𝐭𝐥𝐞 𝐜𝐚𝐩𝐢𝐭𝐚𝐥 𝐢 𝐦𝐚𝐝𝐞 𝐚 𝐩𝐫𝐨𝐟𝐢𝐭 𝐚𝐧𝐝 𝐢 𝐭𝐫𝐲 𝐢𝐭 𝐚𝐠𝐚𝐢𝐧 𝐢 𝐰𝐢𝐭𝐡𝐝𝐫𝐚𝐰𝐧 𝐦𝐲 𝐩𝐫𝐨𝐟𝐢𝐭 𝐒𝐮𝐜𝐜𝐞𝐬𝐬𝐟𝐮𝐥𝐥𝐲 𝐚𝐥𝐥 𝐦𝐲 𝐟𝐚𝐦𝐢𝐥𝐲'𝐬 𝐚𝐧𝐝 𝐟𝐫𝐢𝐞𝐧𝐝𝐬 𝐚𝐫𝐞 𝐫𝐞𝐚𝐥𝐥𝐲 𝐛𝐞𝐧𝐞𝐟𝐢𝐭𝐢𝐧𝐠 𝐟𝐫𝐨𝐦 𝐭𝐡𝐢𝐬 𝐧𝐨𝐰 𝐲𝐨𝐮 𝐜𝐚𝐧 𝐣𝐨𝐢𝐧 𝐰𝐢𝐭𝐡 𝐭𝐡𝐞 Link 𝐛𝐞𝐥𝐨𝐰 𝐭𝐡𝐢𝐬 𝐢𝐬 𝟏𝟎𝟎% 𝐥𝐞𝐠𝐢𝐭👇 https://t.me/joinchat/bnncLfFkVxQ0ODNk
Timofey
🤘кто-то заливал electron приложения для macos в тестфлайт? Расскажите, как вы это делали? Как подписывали приложение
Григорий
🤘кто-то заливал electron приложения для macos в тестфлайт? Расскажите, как вы это делали? Как подписывали приложение
скачай по ссылке выше последнюю папку, там чел показывает как подписывать на маке свое приложение и как залить на гит
Григорий
в группе скоро будет 1000 молчунов, как прекрасно
Илья
как? Как это работает?
фишка в том, что если у тебя в приложении открывается какой-то внешний ресурс и есть это разрешение, то нехороший человек может выполнить на твоем железе любой код на nodejs, то есть сможет творить все что душе угодно. Захотел, удалил все файлы, захотел, считал какие-то файлы и отправил себе по сети на сервак, запустил какой-то .exe файл, записал видео с экрана, используя api electron, или даже твоей вебки, и так же отправил себе по сети... В общем, вариантов развлечения очень много
Илья
nodeIntegration: true дает возможность в renderer использовать возможности nodejs
Nicky
nodeIntegration: true дает возможность в renderer использовать возможности nodejs
так через события же, а не через передачу кода целыми файлами
Nicky
nodeIntegration: true дает возможность в renderer использовать возможности nodejs
вот у тебя есть main process - в нём событие, за которым зарегистрирован заранее заданная функция. Ты в это событие с рендерера стучишься и передаёшь в мэйн какие-то заранее известные структуры данных. Каким же образом ты получишь доступ ко всей системе клиента?
Илья
если у тебя только локальные файлы в приложении, то все ок
Nicky
если у тебя только локальные файлы в приложении, то все ок
ну а допустим я подтягиваю удалённый скрипт с какого-нибудь cdn, допустим он вредоносный. Как с него получить доступ к нод-процессу?
Илья
не нужен никакой доступ, если nodeIntegration: true, повторюсь, он уже есть автоматически, я просто в скрипте прописываю желаемую логику хака твоей системы и оно спокойненько отрабатывает
Nicky
другое дело window - когда через подключенный извне скрипт может проверить window на предполагаемые свойства с апи твоего main process и попробовать на нём что-то сделать, стянуть данные откуда-нибудь с удалённой базы - это понятно
Илья
почитай) не буду спорить https://www.electronjs.org/ru/docs/latest/tutorial/security
Nicky
он бы был полным, если б рендерер отрабатывал в main типа ssr своеобразного
Nicky
так я же не спорю, я не могу просто твою логику понять - в ней пробелы
Илья
я уже все написал)
Илья
более подробно в доке
Nicky
понятно. Это нужно целый удалённый рендерер запустить чтоб он получил доступ к главному процессу. И то они сами не описывают каким образом, даже взяв под полный контроль один из рендереров платформы, как они получат доступ к main process - somehow бть: As an example, consider a remote website being displayed inside a default BrowserWindow. If an attacker somehow manages to change said content (either by attacking the source directly, or by sitting between your app and the actual destination), they will be able to execute native code on the user's machine.
Nicky
я могу объяснить почему я так рьяно бросился в детали. Если бы можно было через электрон так просто получить доступ к main process через рендерер - можно было б свой тимвивер накатать на электроне, вще изи
Александр
ребят подскажите, вот я добавил такие строки в main.js которые выводят имя пк, как мне теперь это передать в index.html
Александр
Александр
когда делаю npm start все выводится, но не понимаю как передать значекние переменной в Index.html чтобы дальше с ней работать
Григорий
понятно. Это нужно целый удалённый рендерер запустить чтоб он получил доступ к главному процессу. И то они сами не описывают каким образом, даже взяв под полный контроль один из рендереров платформы, как они получат доступ к main process - somehow бть: As an example, consider a remote website being displayed inside a default BrowserWindow. If an attacker somehow manages to change said content (either by attacking the source directly, or by sitting between your app and the actual destination), they will be able to execute native code on the user's machine.
Ну я думаю ты же знаешь, что есть вирус,, которая вытворяет все что хочешь на компе И вот если открыл nodeIntegration ты можешь через сайт скачать и тот же вирус или скрипт словить, который может у nodejs запросить очистку того же жёсткого и он спокойно почистит от лишней инфы твой комп, это самый простой вариант