「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Cookie]]

* 目次 [#w6c5a9e5]
#contents

*概要 [#qf3a1e80]
SameSite属性とは、

-[[Cookie関連のHTTPヘッダ>Cookie#u957f567]]で、
--[[CSRF対策>CSRF(XSRF)対策の実装方針]]のために実装された。
--3rd Party Cookieのクロスサイトでの扱いを変更する属性。
--Chromeでは、「SameSite=Lax」に設定される。

-下記に影響が出るなど、
--クロスサイトでPOST遷移した場合、Cookieが付与されない。
--IFRAMEを使用した場合、Cookieが付与されない。

>[[認証>クレームベース認証]]界隈でも話題になっている。

*詳細 [#se1e314a]
これによる影響は、単純に、

-SameSite属性の値次第で、
-クロスサイトの遷移の中でCookieが送信されなくなる。

と言う事である。

**影響の具体例 [#d246fec3]
「クロスサイトの遷移の中でCookieが送信されなくなる」ので、

***一般的な問題 [#j5c8878f]
クロスサイトの遷移後、

-遷移先で未ログイン状態になる([[Cookie認証チケット>認証基盤#la8f4c73]])。
-遷移先で情報が取得できず、機能が動作しなくなる([[Session Cookie>ASP.NET Session#r1eb9f6a]])。

※ 例えば、ECサイトのカート情報などが保持できなくなる。

などの問題が発生し得る。

***IdPでの問題 [#e81bb847]
以下の機能が動作しなくなる可能性がある。

-[[SAML の HTTP POST Binding>SAML Bindings#n7409552]]
-[[OAuth2/OIDC の response_mode=form_post>OAuth 2.0 Form Post Response Mode]]

**トリガはブラウザの既定値の変更 [#d63a3654]
以下のバージョンで、SameSite属性が導入されている。
-Chrome:version 51
-Firefox:version ?
-Edge:Windows 10 ビルド17672以降

***Chrome 78-80以降 [#ub10550c]
-Chrome 78-79~
[[SameSite属性値がLax>Cookie#u957f567]]の場合、~
「2分間はCookieを送信する」と言う~
(よけい混乱する)独自動作を行う。

-Chrome 80

--[[SameSite属性の既定値がNoneからLax>Cookie#u957f567]]に変更された。
>特に、SameSite属性が未指定の場合、~
SameSite属性の既定値がNoneからLaxに変更される。

--Secure属性を付けずSameSite=Noneを指定した場合、~
set-cookie自体が無効になったので、HTTPの場合は、~
HTTPS化して、Secure属性を付与する必要がある。~

--新コロ対応
---2020/4/3(現地時間)、この仕様を一時的に撤回すると発表した。

---一方「[[Edge>#pa724289]]」などでは、この仕様変更が維持されている。

***Firefox ?, Edge 80 [#pa724289]
MozillaのFirefoxやMicrosoftのEdgeブラウザでも、~
「SameSite=Lax」属性がデフォルトで追加される予定

-Firefox ?
-Edge 80(2020/02/10)より試験運用

**影響への対応 [#x4ec40e6]
-クロスサイトの画面遷移の方法を変更するか、
-必要な部位に、SameSite=Noneを明示する。~
(加えて、HTTPS化してSecure属性を付与する)。

*参考 [#c96a2566]
-EC事業者にも関係するSameSite属性!~
カートに入れたはずの商品がない?~
ログインが何回も求められる?~
Chrome 80の仕様変更とその影響・対策(2020年2月3日追記)~
https://www.future-shop.jp/magazine/info-samesite

-SameSite 属性結局どうすりゃいい? | tech - 氾濫原~
https://lowreal.net/tech/.page/20191102010401/3

-【Google Chrome】CookieのSameSite属性などを~
デベロッパーツールで確認する:Google Chrome完全ガイド - @IT~
https://www.atmarkit.co.jp/ait/articles/2002/19/news021.html

-Chrome 80で導入されたCookieのSameSite属性サポートが~
原因でCookieの長さが上限を超え不具合が出るケースが発生 | スラド IT~
https://it.srad.jp/story/20/02/19/181211/

-Google、「Chrome 80」から導入されている~
“SameSite Cookie”の変更を一時撤回 - 窓の杜~
https://forest.watch.impress.co.jp/docs/news/1245512.html

-SameSite属性どころか、~
HTTP自体がダメになってた件(Cookie) - OSSコンソーシアム~
https://www.osscons.jp/jov9t04kz-537/

**Qiita [#b5a77002]
-Chrome 80が密かに呼び寄せる地獄~
~ SameSite属性のデフォルト変更を調べてみた~
https://qiita.com/ahera/items/0c8276da6b0bed2b580c

-CookieのSameSite属性 NoneとLaxの違い~
https://qiita.com/akaaariiiiin/items/b3078b53621c79188f6e

-EC-CUBE の SameSite cookie 対応まとめ~
https://qiita.com/nanasess/items/bfb965554b5ee36fb0d6

**Google, MS [#i9b64ac8]
-Google Developers Japan: 新しい Cookie 設定 SameSite=None; Secure の準備を始めましょう~
https://developers-jp.googleblog.com/2019/11/cookie-samesitenone-secure.html

-ASP.NET Core での SameSite cookie の使用 | Microsoft Docs~
https://docs.microsoft.com/ja-jp/aspnet/core/security/samesite

**OSSコンソーシアム > 開発基盤部会 Blog [#yeb9e831]
-SameSite属性どころか、~
HTTP自体がダメになってた件(Cookie) - ~
https://www.osscons.jp/jov9t04kz-537/

-SameSite属性の背景は3rd Party Cookie~
...その辺、あまり詳しくないケド~
https://www.osscons.jp/joldyq7jm-537/

**[[Cookie > 3rd Party Cookie問題>Cookie#y35ce60f]] [#vb563a42]

----
Tags: [[:プログラミング]], [[:通信技術]], [[:.NET開発]], [[:.NET Core]], [[:ASP.NET]], [[:ASP.NET Web API]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS