Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

9.2. 了解常见的 Web 服务器漏洞

本章论述了如何帮助缓解一些常见 Web 服务器漏洞。

9.2.1. 跨站点脚本(XSS)

OpenStack 控制面板可以自定义,并允许大多数字段中设置整个 Unicode 字符;这种可扩展性可能会引入跨站点脚本(XSS)漏洞。Horizon 包括可帮助开发人员避免意外创建 XSS 漏洞的工具,但只有在开发人员正确使用这些漏洞时才能工作。建议您审核任何自定义仪表板,并特别注意以下功能:

  • mark_safe 功能。
  • is_safe - 与自定义模板标签一起使用时。
  • safe 模板标签。
  • 任何自动转义都关闭,任何可能会评估错误转义的数据的 JavaScript。

9.2.2. 跨站点请求 Forgery (CSRF)

OpenStack 仪表板旨在禁止开发人员通过自定义仪表板引入跨站点脚本漏洞,因为可能会引入威胁。应当对使用多个 JavaScript 实例的仪表板进行审核,如不当使用 @csrf_exempt decorator。任何未遵循这些推荐的安全设置的仪表板,都应在 CORS (Cross Origin 资源共享)限制之前仔细评估。

您应该将 Web 服务器配置为为每个响应发送限制的 CORS 标头,仅允许仪表板域和协议。例如:Access-Control-Allow-Origin: https://example.com/。您不应该允许通配符源。

9.2.3. 跨报脚本(XFS)

disallow_iframe_embed 设置不允许 Dashboard 在 iframe 中嵌入。旧浏览器仍容易受到 Cross-Frame Scripting (XFS)漏洞的影响,因此此选项可以为不需要的部署添加额外的安全强化。

您可以使用以下参数允许 iframe 嵌入:

    parameter_defaults:
      ControllerExtraConfig:
        horizon::disallow_iframe_embed: false

9.2.4. 为 Dashboard 流量使用 HTTPS 加密

建议您使用 HTTPS 加密仪表板流量。您可以将证书配置为使用可识别的证书(CA)的有效可信证书来实现此目的。只有在所有用户浏览器中预安装信任 root 时,私有机构签发的证书才适当。

配置 HTTP 请求到仪表板域,以重定向到完全限定的 HTTPS URL。

有关基于 director 的部署,请参阅 https://access.redhat.com/documentation/zh-cn/red_hat_openstack_platform/13/html/advanced_overcloud_customization/sect-enabling_ssltls_on_the_overcloud

9.2.5. HTTP 严格传输安全性(HSTS)

HTTP 严格传输安全性(HSTS)可防止浏览器在最初建立安全连接后进行后续的不安全连接。如果您已在公共或不受信任的区域中部署了 HTTP 服务,HSTS 尤为重要。

对于基于 director 的部署,默认启用此设置:

enable_secure_proxy_ssl_header: true