【发布时间】:2016-08-12 18:41:20
【问题描述】:
关于 SO 有很多与此类似的问题,但没有一个能解决我的目的。
我正在创建一个类似于 chrome 扩展的“pinterest”。它在网页上注入脚本,收集图像,然后将其发布到某处。一切正常,但是当我在 pinterest 本身上运行它时,它给了我这个错误:
拒绝加载脚本“https://domain_name.com/my_script.js”,因为它违反了以下内容安全策略指令:“default-src 'self' https://.pinterest.com https://。 pinimg.com *.pinterest.com *.pinimg.com *.google.com connect.facebook.net .google-analytics.com https://.googleapis.com .gstatic。 com https://.facebook.com *.facebook.com www.googleadservices.com googleads.g.doubleclick.net platform.twitter.com *.tiles.mapbox.com *.online-metrix.net * .bnc.lt bnc.lt *.yozio.com 'unsafe-inline' 'unsafe-eval'”。请注意,'script-src' 没有显式设置,因此 'default-src' 用作后备。
我知道这与Content Script Policy 有很大关系(我对此了解不多)但是,我关注了this 和this 链接,它为我提供了关于什么是CSP 以及如何使用它的足够信息。
我已经完成了所需的一切(我认为),但它仍然无法正常工作。这是我的 manifest.json
{
"manifest_version": 2,
"name": "Image Posting",
"description": "This extension enables you to post images",
"version": "1.0",
"browser_action": {
"name": "Image Posting"
},
"homepage_url": "https://www.domain_name.com/",
"background":{
"scripts":["background.js"]
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["jquery.js", "content.js"]
}
],
"icons": {
"128": "icon_128.png",
"16": "icon_16.png",
"48": "icon_48.png"
},
"permissions": [
"activeTab",
"notifications"
],
"web_accessible_resources": [
"icon_48.png"
],
"content_security_policy": "default-src 'self' https://domain_name.com/my_script.js; script-src 'self' https://domain_name.com/my_script.js; style-src 'self' https://domain_name.com/my_style.css; 'unsafe-inline' 'unsafe-eval'"
}
在某一点上,我还认为其中可能有一些实际上无法完成的事情,然后我尝试了 BUFFER 扩展,它也可以成功地将他们的脚本注入到 pinterest 上,这意味着这件事在某种程度上是可能的。此外,不要忘记像 AdBlocker 这样的扩展程序适用于每个站点,它们还必须从远程服务器中提取一些资源。他们是否以任何方式绕过 CSP,或者有一些我不知道或错过的非常重要的事情。有关如何执行此操作的任何建议/提示?
【问题讨论】:
标签: google-chrome google-chrome-extension content-security-policy javascript-injection