当前位置: 首页 > 知识库问答 >
问题:

拒绝诬陷https://api.xxx.jp/'因为它违反了以下内容安全策略指令:“frame src'self'

卢普松
2023-03-14

我们开始吧:我是谷歌chrome扩展开发的新手,所以请容忍我。

我有一个分机,它给了我以下错误:

拒绝框架'https://api.xxx.jp/',因为它违反了以下内容安全策略指令:"frame-src'自己'https://staticxx.facebook.comhttps://twitter.comhttps://*.twimg.comhttps://5415703.fls.doubleclick.nethttps://player.vimeo.comhttps://pay.twitter.comhttps://www.facebook.comhttps://ton.twitter.comhttps://syndication.twitter.comhttps://vine.co推特:https://www.youtube.comhttps://platform.twitter.comhttps://upload.twitter.comhttps://s-static.ak.facebook.comhttps://4337974.fls.doubleclick.nethttps://8122179.fls.doubleclick.nethttps://donate.twitter.com”。

My manifest.json文件具有以下有关内容安全策略的设置:

{
   "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'",
   "manifest_version": 2,
}

在我的content.js文件中,我通过iframe标签调用api:

<iframe src="'+url+'" name="xxxExtensionsFrame" width="380" height="' + (heightBase - 5) + '" border="0" frameborder="0" scrolling="no"></iframe>

api的url总是https形式。

  • 此扩展适用于大多数网站,但也适用于某些网站,如https://twitter.com/?lang=en,它将显示一个灰色弹出框,其中包含上述错误消息

下面是我在工作中的扩展示例:

<video class="image-viewer horizontal" poster="https://thumb.gyazo.com/thumb/642_w/_262d5667a035ff8505079ce6994d3c3f-gif.jpg" autoplay="" playsinline="" loop="" style="max-width: 642px; max-height: 100%;"><source src="https://i.gyazo.com/90701bdda37df8282699208efaa215a5.mp4" type="video/mp4"></video>

欢迎任何帮助。

共有1个答案

昝晗昱
2023-03-14

Twitter使用内容安全策略头。解决问题的唯一方法是使用后台脚本中的chrome.web请求API修改响应标头。

以下是一个例子:

chrome.webRequest.onHeadersReceived.addListener(info => {
    const headers = info.responseHeaders; // original headers
    for (let i=headers.length-1; i>=0; --i) {
        let header = headers[i].name.toLowerCase();
        if (header === "content-security-policy") { // csp header is found
            // modify frame-src here
            headers[i].value = headers[i].value.replace("frame-src", "frame-src https://domain-you-want-to-iframe.com/");
        }
    }
    // return modified headers
    return {responseHeaders: headers};
}, {
    urls: [ "<all_urls>" ], // match all pages
    types: [ "sub_frame" ] // for framing only
}, ["blocking", "responseHeaders"]);

这个例子摘自我的博客文章。

 类似资料:
  • 问题内容: 当我尝试将我的应用程序部署到5.0.0以上的android系统的设备上时,我一直收到以下错误消息: 07-03 18:39:21.621:D / SystemWebChromeClient(9132):file:///android_asset/www/index.html:第0行:拒绝加载脚本“ http:// xxxxx ”,因为它违反了以下内容安全策略指令:“ script-sr

  • 当我尝试将我的应用程序部署到Android系统高于5.0.0(Lollipop)的设备上时,我不断收到以下错误消息: 07-03 18:39:21.621:D/SystemWebChromeClient(9132):file:///android_asset/www/index.html: 第0行:拒绝加载脚本的http://xxxxx'因为它违反了以下内容安全策略指令:“script src's

  • 因此,在大约1小时内,我的扩展失败了。 我在做我的扩展,它在做我假装的事情。我做了一些更改,由于不喜欢,我删除了它们,现在我的扩展抛出错误: 拒绝应用内联样式,因为它违反了以下内容安全策略指令:“default src‘self’”。请注意,没有显式设置“style src”,因此使用“default src”作为回退。 是什么导致了这个错误? 我在以下方面进行了更改: popup.html po

  • 我尝试通过cryptojs库加密用户数据,并通过ajax发送到服务器,但控制台显示错误: 拒绝加载脚本'https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js',因为它违反了以下内容安全策略指令:脚本-src'自我'https://apis.google.com'不安全评估'。请注意,没有显式设置脚本-src-

  • 我得到了这个错误: 尝试加载mapboxGL地图时。这是我的CSP标签:

  • 我正在学习将Cordova与jquery mobile结合使用,我有以下错误: 拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“默认src“self”数据:间隙:https://ssl.gstatic.com “不安全评估”。启用内联执行需要'unsafe inline'关键字、哈希('sha256-iacGaS9lJJpFDLww4DKQsrDPQ2lxppM2d2GGnzCeKkU=')