首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“您的站点的内容安全策略阻止在JavaScript中使用'eval‘”警告时,在电子中设置CSP元标记

“您的站点的内容安全策略阻止在JavaScript中使用'eval‘”警告时,在电子中设置CSP元标记
EN

Stack Overflow用户
提问于 2020-12-25 04:19:20
回答 2查看 15.7K关注 0票数 16

我正在创建一个电子应用程序,并根据电子安全教程添加了一个CSP标记。运行应用程序时,devtools中会出现此问题。

网站的内容安全策略阻止在JavaScript中使用“eval”内容安全策略(CSP)防止将任意字符串计算为JavaScript,从而使攻击者更难在站点上注入未经授权的代码。要解决此问题,请避免使用eval()new Function()setTimeout([string], ...)setInterval([string], ...)计算字符串。

在我自己的代码中没有出现eval调用或其他字符串计算的情况。这个问题没有给出导致它的代码的任何线索,我使用'report-sample'值的尝试对输出没有任何影响。在Chrome中打开HTML文件时不会出现此问题。

我可以用一个非常基本的应用程序重新创建警告。

main.js

代码语言:javascript
运行
复制
const path = require("path");
const { app, BrowserWindow } = require("electron");

const createWindow = () => {
  let mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      contextIsolation: true,
      nodeIntegration: false,
    }
  });

  mainWindow.loadURL(`file://${path.join(__dirname, "/index.html")}`);
};

app.on("ready", createWindow);

index.html

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="Content-Security-Policy" content="default-src 'self'">
  <title>Document</title>
</head>
<body>
  <h1>CSP Issue Test</h1>
</body>
</html>

我想了解这个问题出现的原因,并加以解决,而不是仅仅压制这个警告。

EN

回答 2

Stack Overflow用户

发布于 2021-08-12 08:07:40

基于电子Github的问题,“这条日志消息目前正在开发中,如果你运行你的打包应用程序,它将不会发生。”这是根据电子贡献者之一。

这个问题现在已经结束了,但它仍然是活跃的,一些用户说它有点混乱(我同意)。基于此,我认为我们只是在开发过程中忽略了它。当应用程序按照投稿人的要求打包时,它就会消失,尽管我自己还没有测试过。

票数 3
EN

Stack Overflow用户

发布于 2021-03-24 07:38:03

从第5版开始,nodeIntegration的默认设置由true改为false。您可以在创建浏览器窗口时启用它:

代码语言:javascript
运行
复制
   app.on('ready', () => {
    mainWindow = new BrowserWindow({
        webPreferences: {
            nodeIntegration: true,
            contextIsolation: false,
        }
    });
});

并将其从html中删除。

代码语言:javascript
运行
复制
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65445255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档