Composer 中的 ThingWorx 模型定义 > 安全 > 内容安全策略 > 配置内容安全策略标头值
配置内容安全策略标头值
CSP 标头值在“平台子系统”的“内容安全策略规则”选项卡上进行配置。
“内容安全策略规则”选项卡只能由管理员访问。尝试访问该选项卡的非管理员会收到一条警告,表明只有管理员才具有访问权限。
页面顶部是内容安全策略指令的简短说明,以及 ThingWorx Platform 帮助中心内相关主题的链接。
如果未启用 CSP,则此处会显示警告,并在更改后警告管理员更改可能需要 1 分钟才能生效。
显示表格
表格中会显示所有已配置的指令、指令值及指令说明。
“指令”“值”“说明”列均支持重新排序。
可通过表格上方的“筛选器”文本框筛选指令、值和说明。
操作列
操作列最初为空。添加和编辑指令时,操作列将被各类图标填充,以协助编辑、还原和保存更改。
“重置” - 选择此选项可将指令重置为默认值。仅适用于默认指令。
“删除” - 选择此选项可删除选定的指令。只能删除由管理员添加的指令。
指令列
已配置的 CSP 指令,用于控制哪些资源可显示在网页上,哪些资源将被阻止。指令是默认条目和为支持特定应用程序而添加的附加指令的组合。
值列
指定指令的策略。常用值为 'self'。
说明列
指令的简要说明。仅显示 2 级指令的说明。3 级规范尚未完成,因此未显示相关说明。
添加指令
“添加”按钮显示在“筛选器”文本框旁的表格上方。管理员可通过此按钮添加新指令。
选择“添加”按钮后将打开“新指令”右侧面板。
要添加指令,请完成以下步骤:
1. 单击“添加”打开“新指令”面板。
2. “新指令”面板上,输入以下信息:
“指令” - 这是一个经 CSP 2 级和 3 级规范验证的有效指令名称。管理员可手动输入有效的指令名称,或单击 打开包含所有有效 2 级指令的对话框。3 级指令不可选,但可手动输入。此字段为必填字段。指令名称不能重复。指令名称不得超过 100 个字符。
“允许” - 此为必需值,但下方提供了一个空白区域以支持某些没有值的指令。此类指令在整个 CSP 策略中的存在使得某些行为得以实现。根据 CSP 库验证“允许”值。验证器检查关键字并筛选无效语法。不允许使用分号 (;),否则指令的保存操作将受阻。其他语法问题,如冒号 (:),将生成警告;但不影响指令的保存。Composer 允许管理员保存无效值,因此这些值在级别 3 中可能有效,尽管验证器仅符合级别 2。“允许”值无效时,面板上会显示一条错误消息。
所允许的字符串应尽可能短,且不能超过 1200 个字符。CSP 策略总计 (所有指令的总合) 的限值同样为 1200 个字符。
3. 单击勾选标记添加指令。
编辑指令
选择表格中的指令后将打开编辑指令窗口,管理员可在其中编辑先前存在的指令。
要编辑指令,请完成以下步骤:
1. 选择一指令以打开“编辑指令”窗口。
2. 在“编辑指令”窗口中,输入以下信息:
“指令” - 正在编辑的指令名称。只读。
“ThingWorx 必需” - ThingWorx 正常运行所需的指令。只读。
“允许” - 将添加至默认指令的值。根据 CSP 库验证允许值是否存在关键字缺失、关键字重复和无效关键字等问题。验证器检查关键字并筛选无效语法。不允许使用分号 (;),否则指令的保存操作将受阻。其他语法问题,如冒号 (:),将生成警告;但不影响指令的保存。Composer 允许管理员保存无效值,因此这些值在级别 3 中可能有效,尽管验证器仅符合级别 2。允许值无效时,推出后会显示一条错误消息。
“值” - 最终指令值。此值为“ThingWorx 必需”“允许”字段的组合。值字符串应尽可能短,且不能超过 1200 个字符。CSP 策略总计 (所有指令的总合) 的限值同样为 1200 个字符。
* 
通常情况下,会组合默认设置和“允许”值,以便注入到 CSP 标头中的值包括默认值和允许值。例如,frame-ancestors 默认为 self。如果管理员将 frame-ancestors 指令配置更新为包括 https://*.somedomain.com,则最终的标头值为 ‘self’ https://*.somedomain.com
要启用将 object-src 设置为 'none'“允许”值将替换默认值,而非值增加默认值。例如,object-src 的默认设置为 'self'。如果将 object-src 更新为 https://*.somedomain.com,则发送到 CSP 的指令将仅为 https://*.somedomain.com。如果要包括 'self',则需将 object-src 明确配置为包括 'self',如下所示:'https://*.somedomain.com' 'self'
如果 object-src 配置包括 'none',则将覆盖任何其他设置。因此,'self' 'none' 实际上为 'none'要求使用引号时,请使用单引号 ('),而非双引号 (")。
* 
安装时默认会将 frame-ancestor 设置为 'self'。如果在 web.xml 和 ThingWorx 中配置了点击劫持筛选器,且发生了向 CSP 的迁移,则 frame-ancestor 将设置为 'self',并在点击劫持筛选器中定义允许列表。
保存并强制实施 CSP 配置设置
单击“保存”可保存对 CSP 配置所做的全部更改。ThingWorx 无需执行任何附加步骤即可强制执行新策略。但在更新和使用 CSP 标头前,会有不超过一分钟的延迟。
评估 CSP
管理员可通过访问 CSP 评估器来检查其 CSP。为此,请从浏览器的开发人员工具中复制 CSP 策略,然后通过以下步骤在 CSP 评估器中对其进行测试。
1. 在浏览器的开发人员工具中打开网络。
2. 刷新浏览器网页。
3. 选择一个请求,然后打开内容安全策略标题。
4. 复制值并将其粘贴到 CSP 评估器中。
5. CSP 评估器将对设置进行分析。
* 
Composer 要求为 'script-src' 配置 'unsafe-eval''unsafe-inline',并针对 'unsafe-inline' 配置 'script-src'。这些设置无法在 ThingWorx 中进行更改。
这对您有帮助吗?