在 TeamCity 中的内容安全策略
TeamCity通过内容安全策略(Content-Security-Policy, CSP) 头实现了额外的HTTP安全性。
标题禁止 TeamCity 页面下载外部资源,但有一些被列入白名单的例外。 从非白名单资源下载将会被阻止。
在某些设置中,您可能需要允许下载外部资源。 例如,使用分析工具时,或通过插件将 TeamCity 与外部服务进行集成时。
作为插件开发者,您可以通过 ContentSecurityPolicyConfig
OpenAPI 接口提供 CSP 指令。
更改 CSP 头部值
作为服务器管理员,您可以通过 内部属性 更改 CSP 头部值。
针对 TeamCity 管理页面:
teamcity.web.header.Content-Security-Policy.adminUI.protectedValue=<value>对于其他 TeamCity 页面:
teamcity.web.header.Content-Security-Policy.protectedValue=<value>
在数值中,您只需要提供 CSP 头文件的自定义部分。 如果您提供了完整的值,只有其自定义部分将被应用。
通过内部属性添加 Google Analytics
要允许 Google Analytics ,您必须在 CSP 头中更改以下指令的值:
connect-src
允许加载 Google Analytics 的 URL:connect-src 'self' ws: wss: https://www.google-analytics.com www.google-analytics.com https://stats.g.doubleclick.netimg-src
允许加载图片:img-src 'self' data: https://www.google-analytics.com www.google-analytics.com https://stats.g.doubleclick.net;script-src
允许加载 JavaScript:script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.google-analytics.com
内部属性必须按照以下方式设置:
# For TeamCity administration pages:
teamcity.web.header.Content-Security-Policy.adminUI.protectedValue=frame-ancestors 'self'; default-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.google-analytics.com; img-src 'self' data: https://www.google-analytics.com www.google-analytics.com https://stats.g.doubleclick.net; connect-src 'self' ws: wss: https://www.google-analytics.com www.google-analytics.com https://stats.g.doubleclick.net
# For other pages:
teamcity.web.header.Content-Security-Policy.protectedValue=frame-ancestors 'self'; default-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.google-analytics.com; img-src 'self' data: https://www.google-analytics.com www.google-analytics.com https://stats.g.doubleclick.net; connect-src 'self' ws: wss: https://www.google-analytics.com www.google-analytics.com https://stats.g.doubleclick.net
最后修改日期: 16日 7月 2024年