HTTPS、HSTS、XSS、SSRF¶
クロスサイトスクリプティング (XSS)¶
多くの似たようなシステムと異なり、OpenStack dashboard は多くの項目にすべての Unicode 文字を許可します。このことは、開発者が XSS 攻撃の余地を残すエスケープミスをする範囲が少なくなることを意味します。
ダッシュボードは開発者が XSS 脆弱性を作ることを防ぐためのツールを提供します。しかし、それらは開発者が適切に使用するときのみ機能します。mark_safe
関数の使用、カスタムテンプレートタグを持つ is_safe
の使用、safe
テンプレートタグ、自動エスケープが無効化されているすべての場所、不適切にエスケープされたデータを評価するすべての JavaScript にとくに注意して、すべてのカスタムダッシュボードを監視します。
クロスサイトリクエストフォージェリ (CSRF)¶
Django は、クロスサイトリクエストフォージェリー (CSRF) 向けの専用ミドルウェアがあります。詳細は Django ドキュメント.
The OpenStack dashboard is designed to discourage
developers from introducing cross-site scripting vulnerabilities
with custom dashboards as threads can be introduced. Dashboards
that utilize multiple instances of JavaScript should be audited
for vulnerabilities such as inappropriate use of the
@csrf_exempt
decorator. Any dashboard that
does not follow these recommended security settings should be
carefully evaluated before restrictions are relaxed.
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¶
Deploy the dashboard behind a secure HTTPS server by using a valid, trusted certificate from a recognized certificate authority (CA). Private organization-issued certificates are only appropriate when the root of trust is pre-installed in all user browsers.
ダッシュボードのドメインに対する HTTP リクエストは、完全修飾された HTTPS URL にリダイレクトされるよう設定します。
HTTP Strict Transport Security (HSTS)¶
HTTP Strict Transport Security (HSTS) の使用が強く推奨されます。
注釈
Web ブラウザーの前面で HTTPS プロキシーを使用している場合、HTTPS 機能を持つ HTTP サーバーを使用するより、SECURE_PROXY_SSL_HEADER
変数を変更したほうがいいです。SECURE_PROXY_SSL_HEADER
の変更に関する詳細は、Django documentation を参照してください。
HSTS の設定を含め、HTTPS の設定に関するより具体的な推奨事項とサーバー設定は、セキュア通信 の章を参照してください。