🐥
CookieのSameSite属性について_2019/06/22
CookieのSameSite属性について学んだのでメモしておきます。
2019/06/22に書いた、Hatenaブログの記事をzennに移行しただけの個人的なメモです。
・SameSite属性とは
別ドメインに対してCookieを送信しない
具体的には、以前サイトBにログインしていて、サイトBのCookieを保持している状態、その後サイトAのドメインから、サイトBのドメインに対してCookieを送信しない仕様と なっている
このためCSRF対策として期待されている。
Set-Cookie: SID=asdfghjkl; Path=/; Domain=example.com; SameSite=Lax
SameSite属性には値は lax と strict の2種類あります。
HTML | lax | strict |
---|---|---|
<a href="http://example.com/"> | ✅ | ❌ |
<form method="get" action="http://example.com/" > | ✅ | ❌ |
<form method="post" action="http://example.com/" > | ❌ | ❌ |
<img src="http://example.com/img.png"> | ❌ | ❌ |
<iframe src="http://example.com/"> | ❌ | ❌ |
axios.get('http://example.com/', {withCredentials: true}) | ❌ | ❌ |
strictのほうがよりセキュアなCookieを実現できる。 |
脆弱性診断でCSRFを検出し、samesite属性が付与されていた場合の判断が難しい。
金融系ではstrictが推奨されているが、基本的なサイトはlaxでないと通常に遷移ですらログイン前の画面に戻されてしまう。
SameSite属性が指定されていないクッキーがすべてSameSite=Lax 扱いになるかも?
9月には実装?
Cookie の SameSite=Lax をデフォルトにする提案仕様 – ASnoKaze blog
ブラウザではすでに対応されているみたいだが脆弱性診断をしていても見たことはない…
Discussion