【发布时间】:2021-09-02 12:41:10
【问题描述】:
问题:我正在尝试在 Electron 应用程序中加载一个外部脚本(比如说来自 example.com)。 External 脚本将所有内容加载到 iframe 中,并且它使用内联样式,由于 Electron CSP,它在没有任何样式的情况下呈现小部件。我不想在整个应用程序上使用 unsafe-inline CSP,我只需要在这个来自“example.com”的 iframe 上使用它。
我得到的错误:拒绝应用内联样式,因为它违反了以下内容安全策略指令:“default-src 'self'”
为了解决这个问题,我正在考虑在我的电子应用程序中添加这个代码块 -
session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
if(details.url.includes("example.com") && details.url.includes(".html")) {
callback({
responseHeaders: Object.assign({
"Content-Security-Policy": [ "default-src 'self';style-src 'unsafe-inline' https://*.example.com https://example.com" ]
}, details.responseHeaders)});
}
此代码块将确保仅在“abc.com”的 iframe 中具有“不安全内联”CSP。但是,我想检查此代码块是否仍会对我的应用造成任何类型的安全威胁?
【问题讨论】: