我添加了内容安全策略,但仍然出现安全警告

Rap*_*l10 8 content-security-policy electron

我按照此处的建议添加了内容安全策略: https: //www.electronjs.org/docs/tutorial/security#6-define-a-content-security-policy和这里:https://content-security- policy.com/examples/electron/

\n
<html lang="en">\n<head>\n  <meta http-equiv="Content-Security-Policy" content="default-src \'self\'">\n  <meta charset="UTF-8">\n  <meta name="viewport" content="width=device-width, initial-scale=1.0">\n  <title>New Electron App</title>\n</head>\n<body>\n  <span>Our new Electron app</span>\n  <div id="root"></div>\n</body>\n</html>\n
Run Code Online (Sandbox Code Playgroud)\n

但我仍然收到此消息:\n\xe2\x80\x9c电子安全警告(不安全的内容安全策略)。此渲染器进程没有设置内容安全策略,或者启用了 \xe2\x80\x9cunsafe-eval\xe2\x80\x9d 的策略。这使该应用程序的用户面临不必要的安全风险。应用程序打包后,将不会显示此警告。\xe2\x80\x9d

\n

在此输入图像描述

\n

如何解决这个安全警告?

\n

Han*_*och 7

这是预期的行为,因为它表示它将在允许不安全评估的未设置或设置策略时触发。他们只是希望您确保在没有 100% 确定的情况下不要添加任何评估。

为什么这仅在构建时显示,只有当您构建应用程序并且您的二进制文件仍称为“电子”时才会出现这种情况。

电子文档部分


gra*_*nty 5

添加script-src 'self'到 CSP:

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self';">
Run Code Online (Sandbox Code Playgroud)

它应该可以解决这个问题。这是 Electron 安全解析器的一个功能 - 它不知道 abt 回退,所以认为 script-src 不存在,实质内容在这里


pro*_*s96 0

至少有两种禁用 CSP 的方法:没有 package.json


通过 CLI 禁用

考虑在 CLI 中运行 Electron 的应用程序源文件 main.js,如下所示:ELECTRON_DISABLE_SECURITY_WARNINGS=true npx electron main.js

在此使用npx我确实认为你很聪明并事先在本地安装了 Electron 。

通过该过程禁用

在任何地方(最多是顶级)定义以下内容 process.env['ELECTRON_DISABLE_SECURITY_WARNINGS']=true