ADC

内容安全策略响应标头支持 NetScaler Gateway 和身份验证虚拟服务器生成的响应

自 NetScaler 内部版本 13.0—76.29 起,NetScaler Gateway 和身份验证虚拟服务器生成的响应支持内容安全策略 (CSP) 响应标头。

内容安全策略 (CSP) 响应标头是浏览器用来避免跨站脚本 (CSS) 攻击的策略组合。 HTTP CSP 响应标头允许 Web 站点管理员控制允许用户代理为给定页面加载的资源。除少数例外情况外,策略主要涉及指定服务器源和脚本端点。这有助于防范跨站点脚本攻击。 CSP 标头旨在修改浏览器呈现页面的方式,从而防止各种跨站点注入,包括 CSS。以不妨碍 Web 站点正常运行的方式正确设置标头值非常重要。例如,如果标题设置为阻止执行内联 JavaScript,则网站不得在其页面中使用内联 JavaScript。

下面是 CSP 响应标头的优势。

  • CSP 响应头的主要功能是防止 CSS 攻击。
  • 除了限制可从中加载内容的域外,服务器还可以指定允许使用哪些协议;例如(理想情况下,从安全角度来看),服务器可以指定必须使用 HTTPS 加载所有内容。
  • CSP 通过保护“tmindex.html”和“homepage.html”等文件来帮助保护 NetScaler 免受跨站点脚本攻击。文件“tmindex.html”与身份验证相关,文件“homepage.html”与已发布的应用程序/链接相关。

为 NetScaler Gateway 和身份验证虚拟服务器生成的响应配置内容安全策略标头

要启用 CSP 标头,您需要将 Web 服务器配置为返回 CSP HTTP 标头。

需要注意的事项

  • 默认情况下,CSP 标头处于禁用状态。
  • 在启用或禁用默认 CSP 策略时,建议您运行以下命令。 Flush cache contentgroup loginstaticobjects
  • 要修改 /logon/LogonPoint/index.html 的 CSP,请根据在目录 /var/netscaler/logon 下与登录目录对应的部分下的要求修改“Header set Content-Security-Policy”值。
  • 有关如何使用 GUI 配置重写操作和策略的说明,请参阅 写。

要使用 CLI 为身份验证虚拟服务器和 NetScaler Gateway 生成的响应配置 CSP,请在命令提示符处键入以下命令:

set aaa parameter -defaultCSPHeader <ENABLE/DISABLE>

为 NetScaler Gateway 配置 CSP,并使用 GUI 对虚拟服务器生成的响应进行身份验证。

  1. 导航到 NetScaler Gateway > Global Settings(全局设置),单击“Authentication Settings”(身份验证设置)下的 Change authentication AAA settings(更改身份验证 AAA 设置)。

    CSP global-1

  2. Configure AAA Parameters(配置 AAA 参数)页面上,选择 Enabled in Default CSP Header(在默认 CSP 标头中启用)字段。

    CSP global-2

自定义 Content-Security-Policy 标头

您可以在 VPN 虚拟服务器上使用重写策略配置自定义 CSP 标头,并针对 AAA 端点生成的响应进行身份验证虚拟服务器。

以下是 CSP 标头自定义示例,它仅包括分别来自以下两个指定来源的图像和脚本,即 https://company.fqdn.comhttps://example.com

add rewrite action modify_csp insert_http_header Content-Security-Policy ""default-src 'self'; script-src 'self' https://company.fqdn.com 'unsafe-inline' 'unsafe-eval'; connect-src 'self'; img-src http://localhost:* https://example.com 'self' data: http: https:; style-src 'self' 'unsafe-inline'; font-src 'self'; frame-src 'self'; child-src 'self' com.citrix.agmacepa://* citrixng://* com.citrix.nsgclient://*; form-action 'self'; object-src 'self'; report-uri /nscsp_violation/report_uri""

add rewrite policy csp_pol true modify_csp
<!--NeedCopy-->

要将策略绑定到身份验证虚拟服务器,请执行以下操作:

bind authentication vserver auth_vs -policy csp_pol -priority 1 -type AAA_RESPONSE

bind authentication vserver auth_vs -policy csp_pol -priority 2 -type RESPONSE
<!--NeedCopy-->

要将策略绑定到 VPN 虚拟服务器,请执行以下操作:

bind vpn vserver vpn_vs -policy csp_pol -priority 1 -type AAA_RESPONSE

bind vpn vserver vpn_vs -policy csp_pol -priority 2 -type RESPONSE
<!--NeedCopy-->

注意:

无法在内容交换和负载平衡虚拟服务器上为某些 AAA 生成的响应配置自定义 CSP 标头。

内容安全策略响应标头支持 NetScaler Gateway 和身份验证虚拟服务器生成的响应