---
schema_version: "1"
id: 4e6406ea76492e3740b6c8bca64ea5e3c9030d398b8f5b4a843b65fa9fae62d4
title: 內容安全性原則
collection: tableau
version: current
locale: zh-tw
portal_url: https://docs.salesforce.com/tableau/current/zh-tw/server-linux/security_csp.md
canonical_url: https://help.tableau.com/current/server-linux/zh-tw/security_csp.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 247280ef5d63642b6f507141af1c2254771d50840d9669ca1c1c5ee2bfdc22d3
description: Configure and enable Content Security Policy on Tableau Server.
---
[跳至主要內容](#main-content)

# 內容安全性原則

Tableau Server 支援內容安全性原則 (CSP) 標準。CSP 是針對跨網站指令碼和其他惡意網路攻擊的額外安全性層級。CSP 會實施為 HTTP 回應標頭，可讓您指定可安全載入如指令碼和影像等外部資源的位置。

有關 CSP 的詳情，請參閱 [Mozilla 網站](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) 。

## 設定和啟用 CSP

CSP 使用 [tsm configuration set 選項](https://help.tableau.com/current/server-linux/zh-tw/cli_configuration-set_tsm.htm) 命令設定和啟用。如果在分散式部署中執行 Tableau Server，請在叢集的初始節點上執行以下命令。執行 [tsm pending-changes apply](https://help.tableau.com/current/server-linux/zh-tw/cli_pending-changes.htm#pending-changes-apply) 之後，設定將在整個叢集上套用。

### 步驟 1：設定預設指示詞

Tableau Server 包含下表中的預設指示詞集合。

若要設定指示詞，請使用以下 tsm 語法：

`tsm configuration set -k content_security_policy.directive.<directive_name> -v "<value>"`

例如，若要設定 `connect_src` 指示詞，請執行以下命令：

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

<table style="width: 100%;" class="simple-table"><colgroup><col style="width: 45%;"><col style="width: 20%;"><col style="width: 25%;"></colgroup><tbody><tr><th>選項</th><th>預設值</th><th><p>描述</p></th></tr><tr><td>content_security_policy.directive.default_src</td><td>‘none’</td><td><p>作為其他擷取指示詞的遞補。</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src" target="_blank"><code>default_src</code> 的有效值</a>。</p></td></tr><tr><td>content_security_policy.directive.connect_src</td><td>*</td><td><p>限制可使用指令碼介面載入的 URL。</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src" target="_blank"><code>connect_src</code> 的有效值</a>。</p></td></tr><tr><td>content_security_policy.directive.script_src</td><td>*</td><td><p>指定 JavaScript 的有效來源。</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src" target="_blank"><code>script_src</code> 的有效值</a>。</p></td></tr><tr><td>content_security_policy.directive.style_src</td><td>* ‘unsafe-inline’</td><td><p>指定樣式表的有效來源。</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src" target="_blank"><code>style_src</code> 的有效值</a>。</p></td></tr><tr><td>content_security_policy.directive.img_src</td><td>* 資料：</td><td><p>指定影像和 Favicon 的有效來源。</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src" target="_blank"><code>img_src</code> 的有效值</a>。</p></td></tr><tr><td>content_security_policy.directive.font_src</td><td>* 資料：</td><td><p>指定使用 @font-face 載入之字型的有效來源。</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src" target="_blank"><code>font_src</code> 的有效值</a>。</p></td></tr><tr><td>content_security_policy.directive.frame_src</td><td>* 資料：</td><td><p>指定使用如 &lt;frame&gt; 和 &lt;iframe&gt; 等元素載入至巢狀瀏覽內容的有效來源。</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-src" target="_blank"><code>frame_src</code> 的有效值</a>。</p></td></tr><tr><td>content_security_policy.directive.object_src</td><td>資料：</td><td><p>指定 &lt;object&gt;、&lt;embed&gt; 和 &lt;applet&gt; 元素的有效來源。</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src" target="_blank"><code>object_src</code> 的有效值</a>。</p></td></tr><tr><td>content_security_policy.directive.report_uri</td><td>/vizql/csp-report</td><td><p>指示使用者代理程式嘗試違反 CSP。這些違規報告包含透過 HTTP POST 要求傳送至指定 URI 的 JSON 文件。</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-uri" target="_blank"><code>report_uri</code> 的有效值</a>。</p></td></tr></tbody></table>

### 步驟 2：新增其他指示詞（可選）

Tableau Server 隨附的預設指示詞是 CSP 支援的指示詞子集。

有關完整的支援 CSP 指示詞清單，請移至 [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy)。

您可以透過在 content\_security\_policy.directive 命名空間中新增新的指示詞，將指示詞新增至現有的預設集合。新增新的指示詞時必須包含 `--force-keys` 參數。語法如下：

`tsm configuration set -k content_security_policy.directive.<new_directive_name> -v "<value>" --force-keys`

例如，若要新增 [`worker-src`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/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.<directive_name> -v "<value>" --force-keys`

例如，若要進報告 `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。

下列選項只用於啟用您已設定之指示詞的強制執行或僅報告模式。

<table style="width: 100%;" class="simple-table"><colgroup><col style="width: 45%;"><col style="width: 20%;"><col style="width: 25%;"></colgroup><tbody><tr><th>選項</th><th>預設值</th><th><p>描述</p></th></tr><tr><td>content_security_policy.enforce_enabled</td><td>false</td><td><p>將 CSP 標頭新增至所有要求，讓瀏覽器強制執行任何違規。</p></td></tr><tr><td>content_security_policy.report_only_enabled</td><td>true</td><td>將 CSP 標頭新增至所有要求，以將任何違規記錄在我們的 vizql-client 記錄檔中，但瀏覽器不會強制執行。</td></tr></tbody></table>

若要啟用您指定的 CSP 指示詞強制執行，請執行以下命令

`tsm configuration set -k content_security_policy.enforce_enabled -v true`

### 步驟 5：執行 tsm pending-changes apply

當您完成設定 CSP之 後，執行 [tsm pending-changes apply](https://help.tableau.com/current/server-linux/zh-tw/cli_pending-changes.htm#pending-changes-apply)。

如果擱置組態需要重新啟動伺服器，`pending-changes apply` 命令將顯示提示，讓您知道即將重新啟動。即使伺服器已停止，也會顯示提示，但在這種情況下不會重新啟動。您可以使用 `--ignore-prompt` 選項隱藏提示，但這樣做不會改變重新啟動行為。如果變更不需要重新啟動，則不會出現提示即可套用變更。有關詳情，請參閱 [tsm pending-changes apply](https://help.tableau.com/current/server-linux/zh-tw/cli_pending-changes.htm#pending-changes-apply)。

## 檢視 CSP 報告

若要檢視指定視覺效果的 CSP 違規，請在包含開發人員工具的瀏覽器中載入視覺效果。此範例使用 Chrome 瀏覽器。

1. 在您設定 CSP 的 Tableau Server 部署上載入託管的具有違規之測試視覺效果。
2. 輸入 `CTRL+Shift+I` 以在 Chrome 中開啟開發人員工具。
3. 按一下 **\[網路\]** 索引標籤。
4. 在 **\[篩選器\]** 欄位中，輸入 `csp-report`，然後按一下 **\[尋找全部\]**。
    
    - 如果沒有違規，則搜尋不會傳回任何 CSP 報告。
    - 如果有違規，請按一下結果窗格中的 \[標頭\] 索引標籤，捲動到底部以檢視 **\[要求承載\]**。