Pri*_*Nom 6 javascript node.js content-security-policy electron
在本地开发时,我想将所有单独的 JS 脚本作为文件保存在另一个文件夹中。我能够做到这一点的唯一方法是我不声明该meta声明。但是,通过不声明它,我当然会收到警告。
电子安全警告(不安全的内容安全策略)此渲染器进程没有设置内容安全策略或启用了“不安全评估”的策略。这使此应用程序的用户面临不必要的安全风险。
有没有办法在不忽略或违反 CSP 的情况下在本地执行此操作?
在渲染器中设置以下元标记。
<meta http-equiv="Content-Security-Policy" content="script-src 'nonce-xxx or sha256-yyy' " />
Run Code Online (Sandbox Code Playgroud)
请查看我的 github 存储库electro-renderer-CSP-sample,其中包含内部和外部 js 文件的随机数和 SHA 方法的示例。
或者
您可以在创建主浏览器窗口时使用 webPreferences 中的预加载参数。在main.js中,
mainWindow = new BrowserWindow({
webPreferences: {
nodeIntegration: false,
preload: path.join(__dirname, 'preload.js')
}
})
Run Code Online (Sandbox Code Playgroud)
在 preload.js 中
const remote = require("electron").remote;
// electron APIs
window.appQuit = function() {
remote.app.exit(0);
};
// node modules
window.notify= function notify(msg) {
return require('node-notifier').notify(msg);
};
// DOM can be manipulated from here (Refer
// https://github.com/electron/electron-quick-start/blob/master/preload.js)
Run Code Online (Sandbox Code Playgroud)