无法加载具有可变脚本地址的Chrome newtab扩展的脚本“ Content-Security-Policy”

时间:2018-07-31 00:50:22

标签: javascript html google-chrome google-chrome-extension yahoo-api

我正在制作一个chrome newtab扩展程序,该扩展程序通过查询yahoo天气来加载用户的天气。我从chrome收到“内容安全策略”违规,说我无法加载脚本:

  

拒绝执行内联脚本,因为它违反了以下要求   内容安全政策指令:“ script-src'self'blob:   文件系统:chrome-extension-resource:“。要么为“不安全内联”   关键字,哈希   ('sha256-PeWalvgfJE6xbsZk1lp14cxuyPBUbuIbzFNlAxarXxU =')或随机数   (“ nonce -...”)才能启用内联执行。

这是我的清单:

{
    "name": "WeatherTodo",
    "version": "1.0",
    "description": "Extension that shows a weather animation and todolist",
    "manifest_version": 2,
    "permissions": ["storage"],
    "chrome_url_overrides": {
        "newtab": "index.html"
    }
}

问题在于,查询是一个不同的URL,具体取决于用户所在的位置,因此我不确定是否可以将其添加为清单的安全链接。请帮忙。

我认为这是导致错误的行,我不确定,因为chrome指向具有我的脚本标签的html行:

fetch("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20(SELECT%20woeid%20FROM%20geo.places%20WHERE%20text%3D%22(" 
                + position.coords.latitude + "%2C" + position.coords.longitude 
                + ")%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys")

1 个答案:

答案 0 :(得分:0)

您不能在HTML中使用内联脚本,因为它易于注入脚本,因此Chrome对此进行了限制。您可以阅读Content Security Policy (CSP)