ChromiumブラウザでCookieのSameSite設定が厳しくなった

 SameSite設定・・・2018年頃に追加されたCookieの属性、クロスドメインのCookie利用を制限する意図があり、セキュリティのレベルが「None」「Lax」「Strict」の3種類ある。これまではSameSite設定がされていない場合のデフォルト値が「None」だったが、2021年6月3日のChromeバージョン91から「Lax」がデフォルトとなり、そのデフォルト値を変更する設定項目がなくなった。

cookies for cross site domain


(バージョン85からデフォルト値が「Lax」になっていたが、Chromeの設定で「None」をデフォルト値にすることができていた。これからも続くと思っていたのは甘かった。)

これによる影響は、たとえばiframeを用いたログインや、ECサイトでの決済など、ドメインをまたいでCookieを利用するサービスが使えなくなる(ログインし直す場合もあれば、実装によっては必要な情報が受け渡せずエラーとなる)ことなどが挙げられる。

Chromiumの指針なので、同じくChromiumを使用するMicrosoft Edgeも同様の対応となる。FireFoxやSafariなどはそれぞれの対応となる。

FireFox・・・SameSite設定は追加されているがデフォルトは「None」のまま
Safari・・・SameSiteは追加されている。未確認だが「None」に設定すると「Strict(厳しい)」になるバグがあるよう(困る)。

これはCSRF(クロスサイトリクエストフォージェリ)を防ぐ方策をブラウザベースで実装するもので、セキュリティの向上という文脈でいうと進歩となる。

そのかわりiframeやECサイト決済など影響をうける処理が多いので、根本的に実装を変える必要がある。

ちなみにアプリケーションの設定でCookieにSameSite=Noneを記述することで上記の処理は引き続き使えるようになるが、たとえばPHPは7.2以上でないとsetcookieの属性にSameSiteを設定できなかったり、プラットフォーム自体の更新を迫られる場合もある。


参考

Chromiumプロジェクト、SameSiteに関するUpdates
https://www.chromium.org/updates/same-site

SameSite Cookieの説明
https://web.dev/samesite-cookies-explained/