Chrome扩展程序和Jenkins网址

时间:2015-03-02 17:54:44

标签: javascript google-chrome-extension jenkins continuous-integration content-security-policy

我目前正在尝试开发一个Chrome扩展程序,它应该显示来自不同Jenkins服务器的数据。用户正在输入jenkins服务器的URL。

基本上我需要的是能够访问任何类型的jenkins网址。

我的问题是Chrome的Content Security Policy 只允许您访问您在manifest.json中注册的域名,如下所示:

"content_security_policy": "script-src 'self' http://localhost:8080/; object-src 'self'"

但由于不同的用户会输入不同的网址,我需要能够动态更改此政策,而且我真的不知道如何做到这一点。

2 个答案:

答案 0 :(得分:0)

安装扩展程序后,您将无法动态更改清单。根据Google https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-remote-script

  

不允许使用通用通配符,例如https:,https:// *和https:// .com;允许使用子域通配符,例如https:// .example.com。

如果您可以确保CI计算机都在同一个域上,那么它可以正常工作。

答案 1 :(得分:0)

您似乎对将请求发送到随机域所需的内容存在误解。

CSP指令script-src指示您可以<{1}}专门执行代码的位置。实际上,这是你不能列入白名单的。

要发送GET / POST跨网站请求,您需要host permission,而不是CSP修改。

有两种可能的方法:

  • 给自己广泛的权限,例如<script src="https://some.domain/script.js">"*://*/*"。这将允许您以安装时警告“可以读取和修改所有网站上的数据”
  • 为代价查询任何内容。
  • 使用optional permissions API。这样,您可以避免安装时警告并在配置扩展时提示提升权限。如果不经常进行此配置,这将是有意义的。

    额外注意事项:自2016-10-04起,{@ 1}} API未在Firefox WebExtensions / Edge Extensions中实施,因此如果需要考虑可移植性,那么现在最好避免使用新项目。