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

时间:2014-04-17 20:50:02

标签: node.js debugging port node-webkit

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

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

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

1 个答案:

答案 0 :(得分: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!
    }
}

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

注意: node-webkit已将名称更改为nw.js