HTTPS、HSTS、XSS 和 SSRF¶
跨站脚本攻击 (XSS)¶
与许多类似系统不同,OpenStack 仪表板在大多数字段中允许使用整个 Unicode 字符集。这意味着开发人员在创建可能导致跨站脚本攻击 (XSS) 漏洞的转义错误方面有更少的余地。
仪表板为开发人员提供了避免创建 XSS 漏洞的工具,但只有在开发人员正确使用这些工具时才能起作用。审计任何自定义仪表板,特别是注意使用 mark_safe 函数、在自定义模板标签中使用 is_safe、 safe 模板标签、任何禁用自动转义的地方以及任何可能错误评估未正确转义数据的 JavaScript。
跨站请求伪造 (CSRF)¶
Django 具有用于跨站请求伪造 (CSRF) 的专用中间件。有关更多详细信息,请参阅 Django 文档。
OpenStack 仪表板的设计旨在阻止开发人员在自定义仪表板中引入跨站脚本漏洞,因为可能会引入线程。使用多个 JavaScript 实例的仪表板应审计是否存在漏洞,例如不当使用 @csrf_exempt 装饰器。任何不遵循这些推荐安全设置的仪表板在放宽限制之前应仔细评估。
跨框架脚本攻击 (XFS)¶
旧版浏览器仍然容易受到跨框架脚本攻击 (XFS) 漏洞的影响,因此 OpenStack 仪表板提供了一个选项 DISALLOW_IFRAME_EMBED,允许在部署中不使用 iframe 时进行额外的安全加固。
HTTPS¶
通过使用来自认可的证书颁发机构 (CA) 的有效、受信任的证书,在安全的 HTTPS 服务器后部署仪表板。仅当所有用户浏览器中预安装信任根时,私有组织颁发的证书才适用。
配置 HTTP 请求,将仪表板域重定向到完全限定的 HTTPS URL。
HTTP 严格传输安全 (HSTS)¶
强烈建议使用 HTTP 严格传输安全 (HSTS)。
注意
如果您的 Web 服务器前面使用了 HTTPS 代理,而不是使用具有 HTTPS 功能的 HTTP 服务器,请修改 SECURE_PROXY_SSL_HEADER 变量。有关修改 SECURE_PROXY_SSL_HEADER 变量的信息,请参阅 Django 文档。
有关 HTTPS 配置的更具体建议和服务器配置,包括 HSTS 的配置,请参阅有关 安全通信 的章节。