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