【问题标题】:How to disable the debug remote port in node-webkit desktop app如何在 node-webkit 桌面应用程序中禁用调试远程端口
【发布时间】:2014-06-02 07:37:57
【问题描述】:
我不想保护打包在 exe 文件中的 node-webkit 桌面应用程序的代码。
问题不在文件上,而是在远程调试的专用端口上。
也许我不明白,但是,在 Windows 上,如果我执行“netstat -a -o”命令,我会看到一个与应用程序关联的开放端口,如果我在浏览器上打开这个端口,我会看到一个带有“Inspectable WebContents”的页面和指向 webkit 应用程序的链接。
通过这个调试窗口,可以访问应用程序的所有源,我不知道如何禁用此功能。
【问题讨论】:
标签:
node.js
debugging
port
node-webkit
【解决方案1】:
目前,我认为在 nw.js 中没有禁用远程调试的实际方法。
即便如此,根据wiki,远程调试似乎只能通过命令行开关执行。因此,在 nw.js 支持禁用远程调试功能之前,您可以阻止 chromium 命令行开关(或仅--remote-debugging-port)以防止用户进行任意远程调试。
例如:
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