サーブレット3.0苦情アプリケーションサーバーでは、web.xmlに以下を追加することで、セッションCookie(JSESSIONID)のHttpOnlyフラグとセキュアフラグを設定できます。
<session-config>
<cookie-config>
<secure>true</secure>
<http-only>true</http-only>
</cookie-config>
</session-config>
ただし、私が取り組んでいるアプリケーションはWebsphere 7にデプロイされますが、これはサーブレット2.5の苦情であり、上記をweb.xmlに追加すると起動に失敗します。
Websphere 7構成で、セッションCookieのHttpOnlyとセキュアフラグをオンにする他の宣言的な方法または設定はありますか?
そうでない場合、プログラムでそれを達成するための最良のアプローチは何でしょうか?
WebSphere 7では、管理コンソールを詳しく調べる必要があるかもしれません。相変わらず、WebSphereのドキュメントは貧弱に見えますが、 com.ibm.ws.security.addHttpOnlyAttributeToCookies プロパティの設定を提案しているようです。
WebSphere Application Serverプロパティ
com.ibm.ws.security.addHttpOnlyAttributeToCookies
を設定すると、SecureフラグとHTTPOnlyフラグの両方が有効になります。
this が見つかりました。これは、WAS7に適用できると思います。試してみてください(現在、システムにはWAS 8しかありません):
JSESSIONID cookie:
セキュアフラグ:
Secureフラグは、AppServer-> [Server Name]-> Web Container Settings-> Session Managementを選択することにより、WebSphere ApplicationServer管理インターフェース内で設定できます。 「CookieをHTTPSセッションに制限する」のチェックボックスをオンにします。
HTTPOnlyフラグ:
現在、HTTPOnly属性をこのCookieに設定することはできません。これは、IBMサイトにAPARPK98436として登録されています。このAPARの修正は、現在、修正パック6.1.0.31および7.0.0.9に含まれることを目的としていますが、これらはまだ利用できません。このAPARを設定すると、プロパティ名com.ibm.ws.webcontainer.httpOnlyCookiesを使用してJSESSIONIDCookieにHTTPOnlyフラグを設定できます。 WebContainerカスタムプロパティを有効にする手順については、次のテクニカルノートを参照してください。
com.ibm.ws.webcontainer.httpOnlyCookies プロパティは、WAS7ヘルプサイトに文書化されています。
セキュアフラグをJSESSIONID cookieに設定するには(WebSphere 7.xおよび8.xでも同じ):
WebSphere8.xのHttpOnlyフラグをJSESSIONIDcookieに設定するには
WebSphere7.xのHttpOnlyフラグをJSESSIONIDcookieに設定するには
WebSphere 7では、これは管理コンソールのサーバー> WebSphereアプリケーションサーバー>[サーバー名]> セッション管理(「コンテナー設定」の下)> Cookieを有効にする> CookieをHTTPSセッションに制限する。