3 追加のHTTPレスポンス・ヘッダーの構成

この章では、ブラウザのセキュリティを向上させるために使用できるデフォルトのHTTPレスポンス・ヘッダーに関する情報と、追加ヘッダーの追加および管理方法について説明します。

この章の内容は次のとおりです。

デフォルトのHTTPレスポンス・ヘッダー

OWASPセキュア・ヘッダー・プロジェクト(OSHPとも呼ばれる)では、ブラウザのセキュリティを強化するために使用できるHTTPレスポンス・ヘッダーが推奨されます。

EDQからのすべてのHTTPレスポンスに追加されるヘッダーを、次の表に示します。
ヘッダー
X-Content-Type-Options nosniff
X-XSS-Protection 1; mode=block
X-Frame-Options deny
Content-Security-Policy default-src 'self' 'unsafe-eval'; img-src 'self' data:; child-src 'none'; object-src 'none'; style-src 'self' 'unsafe-inline'; frame-src 'none'; frame-ancestors 'none'
Cross-Origin-Embedder-Policy require-corp
Cross-Origin-Opener-Policy same-origin
Cross-Origin-Resource-Policy same-origin

さらに、これらのヘッダーは、キャッシュする必要のない動的レスポンスに追加されます。

ヘッダー
Cache-Control no-store
Pragma no-cache

アプリケーション・サーバー(WebLogicまたはTomcat)では、レスポンスにセキュリティ関連のヘッダーも含まれることに注意してください。

新規HTTPレスポンス・ヘッダーの追加

推奨ヘッダーがEDQ HTTPレスポンスにない場合は、director.propertiesファイルに定義することで、欠落しているヘッダーを含めることができます。

追加のレスポンス・ヘッダーを構成するには、属性名がヘッダー名で、値がヘッダー値であるJSONオブジェクトを含むファイルを作成します。レスポンスからデフォルト・ヘッダーを削除するには、値をnullに設定します。

director.propertiesに次の内容を追加します。

http.responseheaders = name of the JSON file

ここでの値が絶対ファイル名でない場合、EDQはローカル構成ディレクトリ内のファイルを検索します。

たとえば、デフォルトの X-Frame-Optionsヘッダーを削除し、X-new-headerヘッダーを追加するには、次を含むJSONファイルをheaders.jsonという名前で作成します。

{ "X-Frame-Options" : null,  
"X-new-header"    : "some new value"
}

次に、director.propertiesに次の内容を追加します。

http.responseheaders = headers.json

すべてのデフォルト・ヘッダーを削除するには、director.propertiesに次の内容を追加します。

http.responseheaders.replace = true

キャッシュの無効化に使用するヘッダーの更新

キャッシュを無効にするために使用される2つのデフォルト・ヘッダーは、すべての場合に適しています。ただし、これらを更新する場合は、新しいヘッダー値または置換されたヘッダー値を含む追加のJSONファイルを追加できます。

JSONファイルの場所を構成するには、director.propertiesに次の行を追加します。

http.responseheaders.nocache = name of file containing JSON with caching headers

標準のno-cacheヘッダーの両方を削除するには、次の行を追加します。

http.responseheaders.nocache.replace = true