HTTPS, HSTS, XSS und SSRF¶
Cross Site Scripting (XSS)¶
Im Gegensatz zu vielen ähnlichen Systemen erlaubt das OpenStack-Dashboard den gesamten Unicode-Zeichensatz in den meisten Feldern. Dies bedeutet, dass Entwickler weniger Spielraum haben, um Flüchtigkeitsfehler zu machen, die Angriffsvektoren für Cross-Site-Scripting (XSS) öffnen.
Dashboard bietet Tools für Entwickler, um XSS-Schwachstellen zu vermeiden,
aber sie funktionieren nur, wenn Entwickler sie korrekt verwenden.
Überprüfen Sie alle benutzerdefinierten Dashboards und achten Sie besonders
auf die Verwendung der mark_safe
-Funktion, verwenden Sie is_safe
mit benutzerdefinierten Template-Tags, die ``Safe``Template-Tag, überall
Auto-Escape ist ausgeschaltet und JavaScript die falsch ausgefallene Daten
auswerten könnten.
Cross Site Request Forgery (CSRF)¶
Django hat Middleware für Cross-Site Request Forgery (CSRF) gewidmet. Weitere Informationen finden Sie in der Django Dokumentation.
Das OpenStack-Dashboard wurde entwickelt, um Entwickler davon abzuhalten, Cross-Site-Scripting-Schwachstellen mit benutzerdefinierten Dashboards einzuführen, da Threads eingeführt werden können. Dashboards, die mehrere Instanzen von JavaScript nutzen, sollten auf Schwachstellen wie die unangemessene Verwendung des ``@csrf_exempt``Dekorators geprüft werden. Jedes Dashboard, das diesen empfohlenen Sicherheitseinstellungen nicht folgt, sollte sorgfältig ausgewertet werden, bevor die Beschränkungen entspannt werden.
Cross-Frame Scripting (XFS)¶
Legacy browsers are still vulnerable to a Cross-Frame
Scripting (XFS) vulnerability, so the OpenStack dashboard
provides an option DISALLOW_IFRAME_EMBED
that allows extra
security hardening where iframes are not used in deployment.
HTTPS¶
Bereitstellen des Dashboards hinter einem sicheren :term:`HTTPS <Hypertext Transfer Protocol Secure (HTTPS)>`Server mit einem gültigen, vertrauenswürdigen Zertifikat von einer anerkannten Zertifizierungsstelle (CA). Private Organisationen ausgestellte Zertifikate sind nur dann sinnvoll, wenn die Wurzel des Vertrauens in allen Benutzerbrowsern vorinstalliert ist.
Konfigurieren Sie HTTP-Anfragen an die Dashboard-Domäne, um die vollständig qualifizierte HTTPS-URL umzuleiten.
HTTP Strict Transport Security (HSTS)¶
Es wird dringend empfohlen, HTTP Strict Transport Security (HSTS) zu verwenden.
Bemerkung
Wenn Sie einen HTTPS-Proxy vor Ihrem Webserver verwenden, anstatt einen
HTTP-Server mit HTTPS-Funktionalität zu verwenden, ändern Sie die Variable
SECURE_PROXY_SSL_HEADER
. Beziehen Sie sich auf die `Django Dokumentation
Weitere Informationen finden Sie im Kapitel Sichere Kommunikation für spezifischere Empfehlungen und Serverkonfigurationen für HTTPS-Konfigurationen inklusive der Konfiguration von HSTS.