内容安全政策指令不适用于电子

Posted

技术标签:

【中文标题】内容安全政策指令不适用于电子【英文标题】:Content Security Policy directive not working on electron 【发布时间】:2021-12-06 08:27:14 【问题描述】:

我尝试了一堆安全策略来连接我们的 api,但总是被拒绝。

Refused to connect to 'https://myapi...' because it violates the following Content Security Policy directive: "connect-src 'self' https://myapi.../* 'unsafe-inline' 'unsafe-eval'".

我正在使用来自电容器社区/电子的默认代码,我所做的只是为 Content-Security-Policy 尝试了一大堆不同的选项。

export function setupContentSecurityPolicy(customScheme: string): void 
  session.defaultSession.webRequest.onHeadersReceived((details, callback) => 
    callback(
      responseHeaders: 
        ...details.responseHeaders,
        'Content-Security-Policy': [
          electronIsDev
            ? `default-src $customScheme://* https://myapi.../* 'unsafe-inline' devtools://* https://myapi.../* 'unsafe-eval' data: https://myapi.../*; script-src 'self' https://myapi.../* 'unsafe-inline' 'unsafe-eval'; connect-src 'self' https://myapi.../* 'unsafe-inline' 'unsafe-eval';`
            : `default-src $customScheme://* 'unsafe-inline' data:`
        ]
      
    );
  );

【问题讨论】:

也尝试提供代码附件 它只是默认的电容器社区/电子,我所做的只是为 Content-Security-Policy 尝试了一大堆不同的选项。 【参考方案1】: 只能是前缀不能是后缀。使用 https://myapi.../ 而不是 https://myapi.../* 有效。

【讨论】:

以上是关于内容安全政策指令不适用于电子的主要内容,如果未能解决你的问题,请参考以下文章

它违反了以下内容安全政策指令

如何找到内容安全政策违规报告的来源?

Google 字体违反了内容安全政策

内容安全策略“数据”不适用于 Chrome 28 中的 base64 图像

连接到我的 api 时出现电子内容安全策略错误

Jenkins 内容安全政策