Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展上的Gmail内容安全策略_Javascript_Google Chrome_Google Chrome Extension_Content Security Policy - Fatal编程技术网

Javascript Chrome扩展上的Gmail内容安全策略

Javascript Chrome扩展上的Gmail内容安全策略,javascript,google-chrome,google-chrome-extension,content-security-policy,Javascript,Google Chrome,Google Chrome Extension,Content Security Policy,Gmail刚刚更新了其内容安全策略: 这给我的Chrome扩展抛出了一个错误,它增强了gmail。明确地说,我的内容脚本正在加载另一个托管在我的服务器上的脚本。这允许快速部署 Refused to load the script 'https://<domain-path>.js?' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-inli

Gmail刚刚更新了其内容安全策略:

这给我的Chrome扩展抛出了一个错误,它增强了gmail。明确地说,我的内容脚本正在加载另一个托管在我的服务器上的脚本。这允许快速部署

 Refused to load the script 'https://<domain-path>.js?' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-inline' 'unsafe-eval' https://talkgadget.google.com/ https://www.googleapis.com/appsmarket/v2/installedApps/ https://www-gm-opensocial.googleusercontent.com/gadgets/js/ https://docs.google.com/static/doclist/client/js/ https://www.google.com/tools/feedback/ https://s.ytimg.com/yts/jsbin/ https://www.youtube.com/iframe_api https://ssl.google-analytics.com/ https://apis.google.com/_/scs/abc-static/ https://apis.google.com/js/ https://clients1.google.com/complete/ https://apis.google.com/_/scs/apps-static/_/js/ https://ssl.gstatic.com/inputtools/js/ https://ssl.gstatic.com/cloudsearch/static/o/js/ https://www.gstatic.com/feedback/js/ https://www.gstatic.com/common_sharing/static/client/js/ https://www.gstatic.com/og/_/js/".
拒绝加载脚本'https://.js?'因为它违反了以下内容安全策略指令:"脚本src“self”“不安全内联”“不安全评估”https://talkgadget.google.com/ https://www.googleapis.com/appsmarket/v2/installedApps/ https://www-gm-opensocial.googleusercontent.com/gadgets/js/ https://docs.google.com/static/doclist/client/js/ https://www.google.com/tools/feedback/ https://s.ytimg.com/yts/jsbin/ https://www.youtube.com/iframe_api https://ssl.google-analytics.com/ https://apis.google.com/_/scs/abc-static/ https://apis.google.com/js/ https://clients1.google.com/complete/ https://apis.google.com/_/scs/apps-static/_/js/ https://ssl.gstatic.com/inputtools/js/ https://ssl.gstatic.com/cloudsearch/static/o/js/ https://www.gstatic.com/feedback/js/ https://www.gstatic.com/common_sharing/static/client/js/ https://www.gstatic.com/og/_/js/".
以下是我从内容脚本加载托管脚本的方式:

var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://<domain-path>.js';
(document.body || document.head || document.documentElement).appendChild(script);
var script=document.createElement('script');
script.type='text/javascript';
script.src=https://.js';
(document.body | | document.head | | document.documentElement).appendChild(脚本);

有什么想法吗?

你不应该在Gmail中插入外部脚本,因为这会减慢页面加载时间,让其他人更难审核你的扩展。当然,你不应该使用WebRequestAPI删除
内容安全策略
标题,因为这会降低Gmail的安全性

如果确实要在页面上下文中获取并执行最新版本的代码,请使用
XMLHttpRequest
加载脚本,然后插入带有以下代码的
标记:

//注意:如果可能,应避免插入外部脚本!
//如果扩展可以完全正常工作,请不要使用此方法
//没有外部脚本!
//即使必须加载外部脚本,也要确保它已加载完毕
//https:,从不通过http:!如果从http:-URL插入脚本,则用户的
//MITM攻击可能会危及安全性。
var x=新的XMLHttpRequest();
x、 打开('获取','https://example.com/script.js');
x、 onload=函数(){
var s=document.createElement('script');
s、 textContent=x.responseText;
(document.head | | document.documentElement)。追加子项;
};
x、 onerror=函数(){
//加载失败。返回到加载(旧版本的)脚本
//它与您的扩展捆绑在一起。它必须列在
//清单文件中的“web\u可访问资源”部分。
var s=document.createElement('script');
s、 src=chrome.runtime.getURL('script.js');
(document.head | | document.documentElement)。追加子项;
};
x、 send();

此方法不需要
“unsafe-inline”
指令,因为扩展注入的内联脚本绕过了内容安全策略().

你不应该在Gmail中插入外部脚本,因为这会减慢页面加载时间,让其他人更难审核你的扩展。你当然不应该使用WebRequestAPI删除
内容安全策略
标题,因为这会降低Gmail的安全性

如果确实要在页面上下文中获取并执行最新版本的代码,请使用
XMLHttpRequest
加载脚本,然后插入带有以下代码的
标记:

//注意:如果可能,应避免插入外部脚本!
//如果扩展可以完全正常工作,请不要使用此方法
//没有外部脚本!
//即使必须加载外部脚本,也要确保它已加载完毕
//https:,从不通过http:!如果从http:-URL插入脚本,则用户的
//MITM攻击可能会危及安全性。
var x=新的XMLHttpRequest();
x、 打开('获取','https://example.com/script.js');
x、 onload=函数(){
var s=document.createElement('script');
s、 textContent=x.responseText;
(document.head | | document.documentElement)。追加子项;
};
x、 onerror=函数(){
//加载失败。返回到加载(旧版本的)脚本
//它与您的扩展捆绑在一起。它必须列在
//清单文件中的“web\u可访问资源”部分。
var s=document.createElement('script');
s、 src=chrome.runtime.getURL('script.js');
(document.head | | document.documentElement)。追加子项;
};
x、 send();

此方法不需要
“unsafe-inline”
指令,因为扩展注入的内联脚本绕过了内容安全策略().

你不应该在Gmail中插入外部脚本,因为这会减慢页面加载时间,让其他人更难审核你的扩展。你当然不应该使用WebRequestAPI删除
内容安全策略
标题,因为这会降低Gmail的安全性

如果确实要在页面上下文中获取并执行最新版本的代码,请使用
XMLHttpRequest
加载脚本,然后插入带有以下代码的
标记:

//注意:如果可能,应避免插入外部脚本!
//如果扩展可以完全正常工作,请不要使用此方法
//没有外部脚本!
//即使必须加载外部脚本,也要确保它已加载完毕
//https:,从不通过http:!如果从http:-URL插入脚本,则用户的
//MITM攻击可能会危及安全性。
var x=新的XMLHttpRequest();
x、 打开('获取','https://example.com/script.js');
x、 onload=函数(){
var s=document.createElement('scrip