- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我即将开始创建基于 Windows 的实用程序应用程序来管理本地化 expressjs 服务器,该服务器将利用基于 Windows 的图形应用程序来管理此服务的一些功能
然而,在我开始之前,我想与社区交谈,以尝试获得一些建议关于如何正确保护代码的建议,因为它都是 Node JS 蜜蜂,我需要确保它受到保护以及我的一些初步阅读网上似乎表明使用 Electron 不是最安全的,看到有人说你们如何处理这个以保持 Node JS 这些代码受 Electron 保护,在我的情况下在 windows 环境中
非常感谢任何建议
最佳答案
tl;dr 你可以,但不值得努力。只需将您的源代码打包到 asar
文件中,它就可以让大多数人远离它。
长答案:
asar
选项。否则,您的文件是脚本,所有这些步骤只会减慢攻击者的速度(许多防御策略),但不会阻止他们访问它们。 devTools 相当容易打开,人们将能够以某种方式、形状或形式阅读代码。如果有人得到了你的混淆代码,很容易重建正在发生的事情(参见此处以获取引用:https://www.youtube.com/watch?v=y6Uzinz3DRU)
如果你想保护自己免受代码操纵,有更好的方法来做到这一点,比如散列、上下文隔离等。Electron 有一整章讨论这个问题。
https://github.com/electron/electron/blob/master/docs/tutorial/security.md
小幅更新(2020 年):
几周前我看到了这个库,并认为它会展示一种很好的方式来进一步混淆代码以防止被外部各方阅读
https://github.com/OsamaAbbas/bytenode
基本思路是将JS编译成V8的字节码。这对 Electron 非常有效,而且绝对不是每个人都能克服的障碍。 但是,这不会保护您的代码不被转回可读的 JS。这只是增加难度的另一层保护。
关于node.js - ElectronJS 代码保护 2018,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50033184/
我正在尝试创建一个应用程序,该应用程序在 2 个连接的显示器上以 Kiosk 模式打开 2 个不同的 BrowserWindows。我看到的有关如何执行此操作的唯一相关文档来自 this page这表
我是 Windows 上的 ElectronJS 新手,在 Linux 上使用之前没有遇到过这样的问题。 我的问题是,当我输入 CMD npm start 时,没有任何错误,但不打开任何仅 Windo
function overlayMaker(){ ffmpeg() .on('end', onEnd ) .on('progress', onProgress)
有没有一种方法可以使用ipcRenderer标识哪个窗口发出事件,以便订阅该窗口以监听外部事件? 事件处理程序如下所示: _registerListener(event, {windowName, i
在 Electron 应用程序中,我们可以在渲染器和主进程中都需要 Node 模块。我已经意识到,当我在渲染器进程的 main(html 的入口脚本)中需要一个模块时,它在我拥有的每个文件中都可用。我
我在与mysql交互时遇到一些麻烦问题。 我有一个表格。当我尝试单击/提交,然后调用我的函数tata()对数据库进行某些操作(选择或其他操作)时,会随机调用connection.query。有时,当我
嗨,我将ElectronJS与React结合使用时,每当我单击lectorn js菜单上的保存按钮时,都会触发一个事件。我正在尝试监听组件中的事件,但是单击菜单项时出现此错误; Uncaught Ex
我是Electron JS的新手,并且尝试阅读文档,但没有用。 我只是想知道是否可以创建一个浏览器窗口,然后在所有正在运行的应用程序后面显示该窗口。那可能吗? 最佳答案 您可以在其他窗口上使用win.
我正在使用 Electron JS 和 react JS 构建一个离线应用程序。 启动步骤中,首先是加载一个大文件(超过 1 GB 且无法拆分) 所以我必须等待大约 50-60 秒,直到这个文件完全加
我正在尝试从ipcMain异步地将消息/数据发送到ipcRender,按照那里描述的代码-https://electronjs.org/docs/api/ipc-main,在main中- // In
我正在尝试将文本从一个窗口发送到另一个窗口,但是我做不到 这是我主要听的地方 ipcMain.on('fromRenderer1', (e,arg) => { createWindow2()
我是 Electron 新手,想处理拖放功能。 想要删除文件并获取其扩展名。根据扩展名更改屏幕上的某些内容。 即,如果将 .mp3 文件放入其中,则希望将 backgroundColor 更改为绿色,
我正在寻找一种在提交表单后自动刷新窗口的方法。我尝试使用 window.on("close", () => { window2.reload(); }) 但它什么也没做。我如何在每次提交表单时重新加载
每当我切换到另一个事件窗口时,我都会尝试获取一个检测事件。我知道 npm 上有一些模块可以告诉您事件窗口,但是是否有 Electron native 方法来检测事件窗口中的变化(这不是我的 Elect
我试过了,但这给了我一个带有菜单栏的新窗口。我在main.js文件中使用win.setMenu(null)删除了主窗口菜单栏。但我找不到在新窗口(“添加项目窗口”)中执行此操作的方法 请看下面的图片看
我想使用 electronjs 开发一个桌面应用程序。该应用程序必须有一个离线和在线数据库,这样当系统连接到互联网时,数据库可以同步..请问我该如何实现这一点。使用nodejs开发api 最佳答案 当
我已经用electronic-packager构建了electronicJS应用程序,构建完成后,当我启动它时,所有数据都消失了。而且我遇到了一个开发应用程序之前从未遇到过的错误。 (C.F屏幕截图)
我正在使用 ElectronJS 开发一个桌面应用程序。当我对主 html 文件或它调用的任何 javascript 文件进行更改时,我在运行程序后得到了一个缓存版本。 我尝试过的事情: 在主 Ele
我有一个带有 Angular6 渲染器的 ElectronJS 应用程序。我的 Angular6 部分有调用 Java REST API 的消费者 key 和 secret 。因为该应用程序当然是可安
我正在构建一个跨平台桌面应用程序。我正在使用 electronjs 框架开发我的桌面应用程序。我想在我的应用程序启动时添加每 5 分钟截取一次屏幕截图的功能! 帮助将不胜感激我的 main.js //
我是一名优秀的程序员,十分优秀!