CookBook

Web サーバで Cookie に SameSite=None; Secure 属性を追加する方法

投稿日:

ブラウザの仕様変更により、クロスドメインアクセスにおける Cookie の扱いに変更がありました。

Google Chrome では バージョン 80 以降、SameSite 属性が宣言されていない Cookie は SameSite=Lax として扱われるようになりました。

※Google Chrome の仕様変更については、以下 Google Developers をご参照ください。

他のブラウザも同様の仕様に変更されていく可能性があります。

この仕様変更でクロスドメインより遷移する場合、遷移先サイト(intra-mart Accel Platform)で作成した Cookie が遷移先サイトに渡されない事象が発生します。
これにより、クロスドメインからのアクセスでは、セッションが維持できなくなります。

この事象を回避するためには intra-mart Accel Platform で作成した Cookie の属性に SameSite=None; Secure を付与する必要があります。

(注意)
Cookie の属性に SameSite=None; Secure を付与する場合、intra-mart AccelPlatform へのアクセスは https である必要があります。

intra-mart Accel Platform で Session Cookie に SameSite 属性 を付与することは、Resin 4.0.57 以降であれば可能です。(Resin のセッションを利用する場合)

ただし、2022/02/09(現在) 、最新バージョン(2021 Winter)であっても、「セッション管理モジュール」を利用する場合には、セッション管理モジュールの設定で Session Cookie に SameSite 属性 を付与することはできません。

セッション管理モジュールを利用している場合には、Web サーバで SameSite 属性を付与する必要があります。そこで、本記事では Web サーバで Cookie に SameSite 属性を付与する方法について解説します。

Apache の場合

httpd.conf に以下の設定を追加します。
set-cookie される Cookie に SameSite 属性 が存在しない場合に、SameSite=None; Secure を付与します。

# Secure Cookie
Header edit Set-Cookie "^(?!.*(\s+|;)(?i)SameSite=)(.*)" "$0; SameSite=None; Secure"


SetEnv proxy-nokeepalive 1
・・・・


Web サーバを再起動してください。

IIS の場合

web.config に以下のコードを追加します。
set-cookie される Cookie に SameSite 属性 が存在しない場合に、SameSite=None; Secure を付与します。

<rewrite>
・・・・
<outboundRules>
・・・・
<rule name="AddSameSiteCookie">
<match serverVariable="RESPONSE_SET_COOKIE" pattern="^(?!.*(\s+|;)SameSite=)(.*)" ignoreCase="true" />
<action type="Rewrite" value="{R:0}; SameSite=None; Secure" />
</rule>
・・・・
</outboundRules>
</rewrite>

Web サーバを再起動してください。

-CookBook

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

IM-BloomMakerでテーブルに行追加・行削除を行う方法

このCookBookでは、 IM-BloomMaker でテーブルに行追加・行削除を行う方法をご紹介します。カスタムスクリプトを利用して配列の変数を操作することで、行追加・行削除を実現します。 完成イ …

IM-Wiki

Wiki機能の活用例

このCookbookでは、intra-mart Accel Platform 2018 Springから利用可能なWiki機能(IM-Wiki)の活用例について紹介します。 今回の記事では実際にWik …

no image

ViewCreatorのヘッダやフッタに配置するリンクのURLに計算結果を埋め込む方法

本記事では、ViewCreatorのヘッダやフッタにリンクを埋め込む際に、関数を利用する方法をご紹介します。 この方法を利用すると、パラメータ文字列に「今日日付」を受け渡すといったことが実現できます。 …

no image

Solr の Docker を作成する。

この CookBook では、Solr の Docker の作成手順について紹介しています。 レシピ ベースイメージの作成 Solr の Docker イメージを作成します 実行します 1. ベースイ …

no image

No.9 音声認識からスケジュール登録

この記事は、EWS 2017で行われたLogicDesignerの講演内容に関する記事です。 こちらの例では、LogicDesignerと音声認識(Web Speech API)の仕組みを利用して、音 …