Link Search Menu Expand Document Documentation Menu

配置 frame ancestors 的 CSP 规则

2.13 版本引入

内容安全策略 (CSP) 是一种安全标准,旨在防止跨站脚本 (XSS)、点击劫持 以及在受信任网页上下文中启动恶意内容所导致的其他代码注入攻击。OpenSearch Dashboards 支持通过在 opensearch_dashboards.yml 文件中使用 csp.rules 键来配置 CSP 规则。YAML 文件中的更改需要重启服务器,这可能会中断服务可用性。但是,您可以通过 applicationConfig 插件动态配置 CSP 规则中的 frame-ancestors 指令,而无需重启服务器。对其他指令的支持将根据安全影响进行评估。

配置

applicationConfig 插件提供了读写 API,允许 OpenSearch Dashboards 用户以键值对的形式在索引中管理动态配置。cspHandler 插件向 HttpServiceSetup 注册了一个预响应处理程序,该程序从依赖的 applicationConfig 插件获取 frame-ancestors 值,然后将其重写到 CSP 标头。在您的 opensearch_dashboards.yml 文件中启用这两个插件以使用此功能。配置示例如下。有关更多信息,请参阅 cspHandler 插件

application_config.enabled: true
csp_handler.enabled: true

为 OpenSearch Dashboards 启用网站嵌入

要为 OpenSearch Dashboards 启用网站嵌入,请使用 cURL 更新 CSP 规则中的 frame-ancestors 指令。在 data-raw 参数中使用包含单引号的 cURL 命令时,请使用反斜杠 (\) 对其进行转义。例如,使用 '\'' 表示 '。配置示例如下。有关更多信息,请参阅 applicationConfig 插件

curl '{osd endpoint}/api/appconfig/csp.rules.frame-ancestors' -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -H 'osd-xsrf: osd-fetch' -H 'Sec-Fetch-Dest: empty' --data-raw '{"newValue":"{new site}"}'

删除 CSP 规则中的 frame-ancestors

使用以下 cURL 命令删除 CSP 规则中的 frame-ancestors

curl '{osd endpoint}/api/appconfig/csp.rules.frame-ancestors' -X DELETE -H 'osd-xsrf: osd-fetch' -H 'Sec-Fetch-Dest: empty'

获取 CSP 规则中的 frame-ancestors

使用以下 cURL 命令获取 CSP 规则中的 frame-ancestors

curl '{osd endpoint}/api/appconfig/csp.rules.frame-ancestors'

优先级

动态配置会覆盖 YAML 配置,空 CSP 规则除外。为了防止 点击劫持,必要时会自动将 frame-ancestors: self 指令添加到 YAML 定义的规则中。

细粒度访问控制

启用安全插件后,只有对配置索引 .opensearch_dashboards_config 具有写入权限的用户才能调用修改 API。API 调用必须包含一个有效的、包含安全信息的 cookie。要构建 cURL 命令,您可以使用浏览器开发工具的网络选项卡中的“复制为 cURL”选项。对于 GET API,您可以从网络选项卡中找到一个类型为 json 的现有 GET XHR 请求,将其复制为 cURL,然后用 appconfig API 名称替换它。同样,对于 POST 和 DELETE API,您可以找到一个现有 POST XHR 请求,并相应地更新 API 名称和 --data-raw 的值。DELETE API 必须将其请求方法更新为 -X DELETE

Firefox 中“复制为 cURL”选项的示例如下图所示。

Copying as curl in Firefox

剩余 350 字符

有问题?

想贡献?