3rd party cookie test (Samesite)

1. このページの目的

サードパーティ・クッキーと、Samesite=None のテストを行う。

2. 何を行うか?

  1. 3rd Party Cookie Test にアクセスして、クッキーを発行させる。
  2. 本ページにアクセスして、1のクッキーが送信されるかチェックする。
    • 以下の <iframe>タグで、3rd-cookie-test.glitch.me にリクエストが送信されるようにしている。このリクエスト内でクッキーも送信されるはず。

追加

  1. 3rd Party Cookie Test にアクセスして、どのクッキーが送信されるか調べる(top-level navigation のテスト)。

サーバー側のコード

response.cookie('name1', 'type1', {maxAge:60000});
response.cookie('name2', 'type2', {maxAge:60000, httpOnly:false});
response.cookie('name3', 'type3', {maxAge:60000, httpOnly:true});
response.cookie('name4', 'type4', {maxAge:60000, httpOnly:true, sameSite:'None'});
response.cookie('name5', 'type5', {maxAge:60000, httpOnly:true, sameSite:'None', secure:true});

その後、以下も追加した。

response.cookie('name4a', 'type4a', {maxAge:60*60*1000, httpOnly:true, sameSite:'Lax'});
response.cookie('name4b', 'type4b', {maxAge:60*60*1000, httpOnly:true, sameSite:'Strict'});
response.cookie('name5a', 'type5a', {maxAge:60*60*1000, httpOnly:true, sameSite:'Lax', secure:true});
response.cookie('name5b', 'type5b', {maxAge:60*60*1000, httpOnly:true, sameSite:'Strict', secure:true});

3. 結果その1

発行されたクッキーを Chrome DevTools で確認する。

今回発行したクッキーは以下の5種類である。

cookies sent

結論

環境:Chrome 77.0.3865.120

<iframe>タグによるリクエストによって、これらのクッキーすべてが送信された。

Cookies Output
Cookies Warnings

4. 結果その2(2020-02-14)

(1) Chrome 80 で same-site-by-default-cookies フラグを有効にした場合

Chrome 80.0.3987.106 で same-site-by-default-cookies フラグを有効にして試してみた。(2020年2月17日の週から適用が始まるらしい)

(現時点ではデフォルトで SameSite=Lax 扱いにならないため)

SameSite by default cookies flag
SameSite by default cookies flag

まずは、Glitch サイトにアクセスしたり、本ページの <iframe>タグを通じていろいろなクッキーをセットさせる。

ブラウザが保存したクッキー
ブラウザが保存したクッキー

本ページをリロードして、どのクッキーが外部ドメイン(3rd-cookie-test.glitch.me) に送られたかを確かめる。

実際に送信されたクッキー
実際に送信されたクッキー

明示的に SameSite=None を指定したクッキーのみが送信された。

(2) Chrome 80 で same-site-by-default-cookies フラグをデフォルトにした場合

ブラウザが保存したクッキー
ブラウザが保存したクッキー
実際に送信されたクッキー
実際に送信されたクッキー

(3) Firefox 73

ブラウザに保存されたクッキー
ブラウザに保存されたクッキー
実際に送信されたクッキー
実際に送信されたクッキー

5. メモ2020-07-29)