После прочтения Руководства по безопасности Electron я отключил nodeIntegeration
и включил contextIsolation
при создании своего экземпляра BrowserWindow
. Это приводит к тому, что средство визуализации не может загружать модули, которые зависят от API-интерфейсов NodeJS (например, require()
). Так, например, я не могу использовать electron-store
(или electron
в этом отношении).
Это также означает, что я не могу использовать IPC, хотя я все равно не смог бы использовать IPC, потому что он JSON сериализует мои пользовательские объекты, что по сути вызывает нарезку объектов путем преобразования моего пользовательского объекта в POJO.
С учетом вышесказанного, как правильно защищать связь между основным процессом и процессом визуализации. Я хочу создать экземпляр приложения Singleton в моем основном процессе, получить к нему доступ в процессе рендеринга (например, загрузить конфигурацию с диска, а затем разрешить пользователю просматривать / редактировать его из рендерера, сохранять изменения обратно на диск) так же безопасно насколько это возможно.
Я смотрел на некоторые другие похожие темы (например, как эта ), и это все еще не работает; кроме того, даже если это сработало, это взлом, и я бы хотел избежать взломов, если есть лучшие способы, которые я просто не могу найти самостоятельно.