自定义 HTML 标头标签
- Tier: 基础版,专业版,旗舰版
- Offering: 私有化部署
History
- 引入于极狐GitLab 17.1。
如果你在欧盟或任何需要 cookie 同意横幅的司法管辖区私有化部署一个极狐GitLab 实例,则需要额外的 HTML 头标签来添加脚本和样式表。
安全影响
在启用此功能之前,你应该了解可能带来的安全影响。
一个以前合法的外部资源可能最终被破坏,然后用于从极狐GitLab 实例中的任何用户提取几乎任何数据。因此,你绝不应该添加来自不受信任的外部来源的资源。
通过使用 HTML 头标签将你添加的功能限制到最低限度。否则,如果你与极狐GitLab 的其他应用程序代码交互,它可能还会导致稳定性或功能问题。
添加自定义 HTML 头标签
你必须将外部资源添加到内容安全策略中,该策略在 content_security_policy 选项中可用。在以下示例中,你必须扩展 script_src 和 style_src。
要添加自定义 HTML 头标签:
-
编辑 /etc/gitlab/gitlab.rb 并添加你的配置。例如:
ruby1gitlab_rails['custom_html_header_tags'] = <<-'EOS' 2<script src="https://example.com/cookie-consent.js" integrity="sha384-Li9vy3DqF8tnTXuiaAJuML3ky+er10rcgNR/VqsVpcw+ThHmYcwiB1pbOxEbzJr7" crossorigin="anonymous"></script> 3<link rel="stylesheet" href="https://example.com/cookie-consent.css" integrity="sha384-+/M6kredJcxdsqkczBUjMLvqyHb1K/JThDXWsBVxMEeZHEaMKEOEct339VItX1zB" crossorigin="anonymous"> 4EOS 5 6gitlab_rails['content_security_policy'] = { 7# extend the following directives 8 'directives' => { 9 'script_src' => "'self' 'unsafe-eval' https://example.com https://www.google.com/recaptcha/ https://www.recaptcha.net/ https://www.gstatic.com/recaptcha/ https://apis.google.com", 10 'style_src' => "'self' 'unsafe-inline' https://example.com", 11 } 12 }