内容:

HTTP 响应标头

  • 版本 :2022.1 及更高版本

Tableau Server 支持 OWASP Secure Headers Project(链接在新窗口中打开) 中指定的某些响应标头。

Tableau Server 支持 OWASP Secure Headers Project(链接在新窗口中打开) 中指定的某些响应标头。

本主题介绍如何为 Tableau Server 配置以下响应标头:

  • HTTP 严格传输安全性 (HSTS)

  • Referrer-Policy

  • X-Content-Type-Options

  • X-XSS-Protection

Tableau Server 还支持内容安全策略 (CSP) 标准。本主题未讨论 CSP 配置。请参见内容安全策略

配置响应标头

所有响应标头都是使用 tsm configuration set 命令配置的。

配置完响应标头后,运行 tsm pending-changes apply

如果待定更改需要重新启动服务器,pending-changes apply 命令将显示一个提示,告知您将进行重新启动。即使服务器已停止,此提示也会显示,但在这种情况下不会重新启动。您可以使用 --ignore-prompt 选项隐藏提示,但这样做不会改变重新启动行为。如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参阅tsm pending-changes apply

HTTP 严格传输安全性 (HSTS)

HSTS 强制连接到 Tableau Server 的客户端使用 HTTPS 进行连接。有关详细信息,请参见 OWASP 条目 HTTP 严格传输安全性 (HSTS)(链接在新窗口中打开)

选项

  • gateway.http.hsts

  • 默认值:false

    HTTP 严格传输安全性 (HSTS) 头强制浏览器在启用它的域上使用 HTTPS。

  • gateway.http.hsts_options

  • 默认值:"max-age=31536000"

    默认情况下,会为一年(31536000 秒)期间设置 HSTS 策略。此时间段指定浏览器将通过 HTTPS 访问服务器的时间量。

  • Referrer-Policy

    从 2019.2 开始,Tableau Server 包括配置 Referrer-Policy HTTP 标头行为的功能。此策略启用时的默认行为是将包括所有“secure as”连接的来源 URL(策略 no-referrer-when-downgrade)。在以前的版本中,Tableau Server 发送的响应中未包括 Referrer-Policy 标头。有关 Referrer-Policy 支持的各种策略选项的详细信息,请参见 OWASP 条目 Referrer-Policy(链接在新窗口中打开)

    选项

    gateway.http.referrer_policy_enabled

  • 默认值:true

    若要从 Tableau Server 发送的响应中排除 Referrer-Policy 标头,请将此值设置为 false

  • gateway.http.referrer_policy

  • 默认值:no-referrer-when-downgrade

    此选项定义 Tableau Server 的引用页策略。您可以指定 OWASP 网页上的 Referrer-Policy(链接在新窗口中打开) 表中列出的任何策略值字符串。

  • X-Content-Type-Options

    X-Content-Type-Options 响应 HTTP 头指定 Content-Type 头中的 MIME 类型不应由浏览器更改。在某些情况下,如果未指定 MIME 类型,则浏览器可能会通过评估有效负载的特征来尝试确定 MIME 类型。然后浏览器将相应地显示内容。这个过程被称为“嗅探”。误解 MIME 类型可能会导致安全漏洞。

    有关详细信息,请参见 OWASP 条目 X-Content-Type-Options(链接在新窗口中打开)

    选项

  • gateway.http.x_content_type_nosniff

  • 默认值:true

    默认情况下,系统使用此选项将 X-Content-Type-Options HTTP 头设置为“nosniff”。

  • X-XSS-Protection

    HTTP X-XSS-Protection 响应头会发送到浏览器以启用跨站点脚本 (XSS) 保护。在用户在浏览器中禁用 XSS 保护的情况下,X-XSS-Protection 响应头会覆盖配置。

    有关详细信息,请参见 OWASP 条目 X-XSS-Protection(链接在新窗口中打开)

    选项

  • gateway.http.x_xss_protection

  • 默认值:true

    默认情况下,系统使用此选项启用了 X-XSS-Protection 响应头。

此部分中的其他文章

Tableau Server 支持内容安全策略 (CSP) 标准。CSP 旨在为抵御跨站点脚本攻击和其他基于 Web 的恶意攻击提供一层额外的安全保护。CSP 以 HTTP 响应头的形式实现,它允许您指定可从何处安全地加载诸如脚本和图像等外部资源。

有关 CSP 的详细信息,请参见 Mozilla 网站(链接在新窗口中打开)

配置和启用 CSP

使用 tsm configuration set 选项 命令来配置和启用 CSP。如果在分布式部署中运行 Tableau Server,请在群集中的初始节点上运行这些命令。配置将在您运行 tsm pending-changes apply 之后在整个群集中应用。

步骤 1:设置默认指令

Tableau Server 包括下表中的一组默认指令。

若要设置指令,请使用以下 tsm 语法:

tsm configuration set -k content_security_policy.directive.

例如,若要设置 connect_src 指令,请运行以下命令:

tsm configuration set -k content_security_policy.directive.connect_src -v "* unsafe-inline"

选项默认值

描述

content_security_policy.directive.default_src“none”

充当其他拉取指令的后备指令。

default_src 的有效值(链接在新窗口中打开)

content_security_policy.directive.connect_src*

限制可使用脚本接口加载的 URL。

connect_src 的有效值(链接在新窗口中打开)

content_security_policy.directive.script_src*

指定 JavaScript 的有效来源。

script_src 的有效值(链接在新窗口中打开)

content_security_policy.directive.style_src*“unsafe-inline”

指定样式表的有效来源。

style_src 的有效值(链接在新窗口中打开)

content_security_policy.directive.img_src* 数据:

指定图像和网站图标的有效来源。

img_src 的有效值(链接在新窗口中打开)

content_security_policy.directive.font_src* 数据:

指定使用 @font-face 加载的字体的有效来源。

font_src 的有效值(链接在新窗口中打开)

content_security_policy.directive.frame_src* 数据:

指定使用诸如 和

frame_src 的有效值(链接在新窗口中打开)

content_security_policy.directive.object_src数据:

指定

object_src 的有效值(链接在新窗口中打开)

content_security_policy.directive.report_uri/vizql/csp-report

指示用户代理报告尝试违反 CSP 的次数。这些违例报告由通过 HTTP POST 请求发送到指定 URI 的 JSON 文档组成。

report_uri 的有效值(链接在新窗口中打开)

步骤 2:添加其他指令(可选)

Tableau Server 附带的默认指令是 CSP 支持的指令的子集。

有关支持的 CSP 指令的完整列表,请转到 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Security-Policy(链接在新窗口中打开)

通过在 content_security_policy.directive 命名空间中添加新指令,您可以向现有默认指令集中添加指令。添加新指令时,您必须包括 --force-keys 参数。语法如下:

tsm configuration set -k content_security_policy.directive.

例如,若要添加 worker-src(链接在新窗口中打开) 指令,请运行以下命令:

tsm configuration set -k content_security_policy.directive.worker-src -v "none" --force-keys

步骤 3:指定仅报告的指令(可选)

您可以将 CPS 配置为报告某些指令和执行其他指令。将 content_security_policy.enforce_enabled 设置为 true 时,则执行所有指令(即使 content_security_policy.report_only_enable 也设置为 true)。

若要将指令指定为“仅报告”而不执行,请将指令添加到 report_only_directive 命名空间。添加新指令时,您必须包括 --force-keys 参数。语法如下:

tsm configuration set -k content_security_policy.report_only_directive.

例如,若要仅报告 script_src 指令,请运行以下命令:

tsm configuration set -k content_security_policy.report_only_directive.script_src -v " http://*.example.com" --force-keys

步骤 4:在 Tableau Server 上启用 CSP

配置了指令之后,在 Tableau Server 上启用 CSP。

以下选项用于为您设置的指令启用执行或仅报告模式。

选项默认值

描述

content_security_policy.enforce_enabledfalse

向所有请求中添加 CSP 标头,以便浏览器将实施任何违例。

content_security_policy.report_only_enabledtrue向所有请求中添加 CSP 标头,以便在 vizql-client 日志中记录任何违例,但浏览器不实施这些违例。

若要执行您已指定的 CSP 指令,请运行以下命令

tsm configuration set -k content_security_policy.enforce_enabled -v true

步骤 5:运行 tsm pending-changes apply

配置完 CSP 后,运行 tsm pending-changes apply

如果待定更改需要重新启动服务器,pending-changes apply 命令将显示一个提示,告知您将进行重新启动。即使服务器已停止,此提示也会显示,但在这种情况下不会重新启动。您可以使用 --ignore-prompt 选项隐藏提示,但这样做不会改变重新启动行为。如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参阅tsm pending-changes apply

查看 CSP 报告

若要查看给定可视化项的 CSP 违例,请在包括开发者工具的浏览器中加载该可视化项。此示例使用 Chrome 浏览器。

  1. 加载一个包含违例情况的测试可视化项,该可视化项托管在您在其中配置了 CSP 的 Tableau Server 部署上。

  2. 输入 CTRL+Shift+I,在 Chrome 中打开开发者工具。

  3. 单击“Network”(网络)选项卡。

  4. 在“Filter”(筛选器)字段中,输入 csp-report,然后单击“Find All”(查找全部)。

    • 如果没有违例,搜索将不会返回任何 CSP 报告。

    • 如果有违例,请单击结果窗格的“Headers”(标题)选项卡,并滚动到底部来查看“Request Payload”(请求有效负载)。