2015-02-20
CookieのFirst-Party-Only属性
Googleの方による、CookieにFirst-Party-Only 属性を追加するという仕様が提案されていたので、簡単に目を通す。
大分理解が足りず間違い等あるかもしれません。
First-Party-Only Cookies(draft-west-first-party-cookies)
First-Party-Only 属性
First-Party-Only 属性は他の属性と同様にset-cookieヘッダで指定される。
Set-Cookie: SID=31d4d96e407aad42; First-Party-Only
これを受け取ったユーザエージェントは、First-Partyリクエスト時のみCookieを送信する。
First-Partyリクエストとは簡単に言うと、リクエストするリソースのオリジンとブラウザのアドレスバーのURLのオリジンが一致しているHTTPリクエストです。
もう少し正確に言うと
- "コンテキスト"はウィンドウ内のトップレベルブラウジングコンテキスとする
- "トップオリジン"は"コンテキスト"内の有効なdocumentのlocationのオリジンとする
- "リクエスト"のURLのオリジンが"トップオリジン"と同一であれば、それは*First-Partyリクエスト*とする。それ以外の"リクエスト"を*Third-Partyリクエスト*とする。
もちろん、First-Party-Only属性付きのSet-CookieはFirst-Partyリクエストに対するレスポンスの時のみ受け取り、それ以外の時は保存されない。
例
多分こんな感じ
- ブラウザで http://example.com/ にアクセスし(First-Partyリクエスト)、「First-Party-Only」属性のついたSet-Cookieヘッダを受け取る
- 次に別のサイト http://example2.com/にアクセスする。そこには<img src="http://example.com/hoge.jpg">のようなタグがあり、example.comにHTTPリクエストが送信される。
- この時のリクエストはThird-Partyリクエストになるので[1]で発行されたCookieは付加されない
何が嬉しいか
Third-PartyリクエストでCookieが付加されないので、CSRFや予期せぬ形での情報流出を緩和することが出来る。
(CSRFとかはコレで完全に防げるという感じではなさそう
トラックバック - http://d.hatena.ne.jp/ASnoKaze/20150220/1424449810
リンク元
- 220 https://www.google.co.jp/
- 60 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=14&ved=0CDIQFjADOAo&url=http://d.hatena.ne.jp/ASnoKaze/20140304/1393951853&ei=X2TnVLPKJITX8gWanYLIBw&usg=AFQjCNHWtIiqzD07AANwqSccR95i9it6zg&bvm=bv.86475890,d.dGY
- 30 http://d.hatena.ne.jp/
- 25 http://www.google.co.jp/url?url=http://d.hatena.ne.jp/ASnoKaze/20140206/1391703926&rct=j&q=&esrc=s&sa=U&ei=5GPoVIu5N-LLmwX86IL4BA&ved=0CEEQFjAH&usg=AFQjCNF9lCIMejFNW3KGno4TJ55JqHfChw
- 22 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=20&ved=0CF8QFjAJOAo&url=http://d.hatena.ne.jp/ASnoKaze/20140304/1393951853&ei=bAboVLmQIYbp8AX9nIGAAw&usg=AFQjCNHWtIiqzD07AANwqSccR95i9it6zg&bvm=bv.86475890,d.dGc
- 20 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=1&ved=0CB4QFjAA&url=http://d.hatena.ne.jp/ASnoKaze/20130318/1363623690&ei=XrzqVNTNNOOzmwXUkYG4Cg&usg=AFQjCNE7D3yypEOPcYJ2-eSKPqrDusxYSA&bvm=bv.86475890,d.dGY
- 19 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=8&ved=0CFcQFjAH&url=http://d.hatena.ne.jp/ASnoKaze/20120223/1330087975&ei=OvDpVPWaN83t8AW9_oGoDA&usg=AFQjCNFIclJz0DdnULvgY6Fm4QVb4UMAaw
- 16 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CDMQFjAC&url=http://d.hatena.ne.jp/ASnoKaze/20141005/1412519735&ei=eR3oVJj1GYGMmwWalIDABw&usg=AFQjCNF4lw8yucQ2bovbQf5N8FGEk__jiQ&sig2=N2A0GE6UoGF1K87XqyFYaw&bvm=bv.86475890,
- 16 https://www.google.com/
- 15 http://qiita.com/advent-calendar/2014/http2