如何在node-webkit桌面应用程序中禁用调试远程端口

Fab*_*aro 6 debugging port node.js node-webkit

我不想保护我在exe文件中打包的node-webkit桌面应用程序的代码.问题不是直接在文件上,而是使用专用端口进行远程调试.

也许我还没有理解,但在Windows上,如果我执行"netstat -a -o"命令,我会看到一个与应用程序关联的开放端口,如果我在浏览器上打开此端口,我有一个页面"可检查的WebContents"和webkit应用程序的链接.

使用此调试窗口,可以访问应用程序的所有源,但我不知道如何禁用此功能.

Plu*_*eco 1

目前,我认为没有实际的方法可以在 nw.js 中禁用远程调试。

即便如此,根据wiki 的说法,远程调试似乎只能通过命令行开关来执行。因此,您可以阻止 chromium 命令行开关(或仅阻止--remote-debugging-port)以防止用户任意远程调试,直到 nw.js 支持禁用远程调试功能。

例如:

const gui = require('nw.gui');
const app = gui.App;

for (let element of app.fullArgv) {
    // app.argv has only user's switches except for the chromium args
    if (app.argv.indexOf(element) < 0) {
        app.quit(1); // invalid args!
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我不太确定上面的代码是否可以保护您的应用程序代码,因为 nw.js 在内部使用 Chromium。这样,应用程序代码将在初始化时被提取到临时文件夹中。而上述解决方案并不能真正保护您的 nw.js 应用程序。查看更多详细信息:https://github.com/nwjs/nw.js/issues/269

注: node-webkit已更名为nw.js