17.12. HTTP のみのセッション管理クッキーの設定
セッション管理クッキーは、JavaScript などの HTTP API および非 HTTP API の両方によってアクセスされます。JBoss EAP は HttpOnly
ヘッダーを Set-Cookie
応答ヘッダーの一部としてクライアント (通常はブラウザー) に送信します。サポートされるブラウザーでこのヘッダーを有効にすると、非 HTTP API を経由してセッション管理クッキーへアクセスしないようにブラウザーに通知します。セッション管理クッキーを HTTP API のみに制限すると、クロスサイトスクリプティングの攻撃よるセッションクッキーの窃盗のリスクを軽減することができます。この動作を有効にするには、http-only
属性を true
に設定する必要があります。
HttpOnly
ヘッダーを使用しても、単にブラウザーに通知を行うだけで、クロスサイトスクリプティングによる攻撃を実際に防ぐわけではありません。この動作を反映するには、ブラウザーも HttpOnly
をサポートしている必要があります。
HttpOnly
属性を使用すると制限がセッション管理クッキーのみに適用され、その他のブラウザークッキーには適用されません。
http-only
属性は undertow
サブシステムの 2 カ所で設定されます。
- セッションクッキー設定としてサーブレットコンテナーで設定
- 単一のサインオンプロパティーとしてサーバーのホストセクションで設定
host-only
をサーブレットコンテナーセッションクッキーに設定
host-only
プロパティーをサーブレットコンテナーセッションクッキーに設定するには、以下を指定します。
/subsystem=undertow/servlet-container=default/setting=session-cookie:add
/subsystem=undertow/servlet-container=default/setting=session-cookie:write-attribute(name=http-only,value=true)
reload
host-only
をホストシングルサインオンに設定
host-only
プロパティーをホストシングルサインオンに設定するには、以下を指定します。
/subsystem=undertow/server=default-server/host=default-host/setting=single-sign-on:add
/subsystem=undertow/server=default-server/host=default-host/setting=single-sign-on:write-attribute(name=http-only,value=true)
reload