Chrome扩展:可以在安全页面注入外部JavaScript

Chrome Extension: Possible to Inject External JavaScript in Secured Pages?

本文关键字:注入 外部 JavaScript 安全 扩展 Chrome      更新时间:2023-09-26

我一整天都在揪头发。

我正在为Facebook创建一个工具。

我试图注入远程Javascript到我的Chrome扩展。

它似乎是工作在所有其他网站,除了在Facebook.com,因为http协议是安全的:HTTPS

当我浏览其他不使用HTTPS的网站时,脚本被注入

是否不可能注入外部javascript为安全站点提供动态内容?

我使用以下代码注入外部js:

app.js(扩展的一部分)

加载以下内容:

chrome.tabs.executeScript(tabId, {file: "js/loadexternal.js"});

然后/js/loadexternal.js做以下操作:

var s = document.createElement('script');
s.type = 'text/javascript';
s.src ='https://www.website.com/loader.js?client=tacx';
document.getElementsByTagName('head')[0].appendChild(s);

请注意:我也从安全(HTTPS)服务器加载远程脚本。没有帮助!

当我不在安全页面时,加载loader.js文件…

但是它不能在Facebook上加载,这似乎总是在HTTPS协议上。

请帮帮我。谢谢你。

PS>是否有一个工作,以显示动态编译的结果在我的工具扩展FB?

如果您查看facebook页面上的HTTP响应头,您将看到以下行:

content-security-policy: default-src *;script-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:* chrome-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl 'unsafe-inline' 'unsafe-eval' https://*.akamaihd.net http://*.akamaihd.net *.atlassolutions.com;style-src * 'unsafe-inline';connect-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.spotilocal.com:* https://*.akamaihd.net ws://*.facebook.com:* http://*.akamaihd.net https://fb.scanandcleanlocal.com:* *.atlassolutions.com http://attachment.fbsbx.com https://attachment.fbsbx.com;

Facebook有一个安全策略,不允许来自这个列表之外的域的脚本,所以我认为你将无法从你的扩展加载外部脚本。

如果标题不在那里,您通常可以包含托管在https://协议上的脚本。