Hatena::ブログ(Diary)

あすのかぜ

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リクエストに対するレスポンスの時のみ受け取り、それ以外の時は保存されない。


多分こんな感じ

  1. ブラウザで http://example.com/ にアクセスし(First-Partyリクエスト)、「First-Party-Only」属性のついたSet-Cookieヘッダを受け取る
  2. 次に別のサイト http://example2.com/にアクセスする。そこには<img src="http://example.com/hoge.jpg">のようなタグがあり、example.comにHTTPリクエストが送信される。
  3. この時のリクエストはThird-Partyリクエストになるので[1]で発行されたCookieは付加されない

何が嬉しいか

Third-PartyリクエストでCookieが付加されないので、CSRFや予期せぬ形での情報流出を緩和することが出来る。

(CSRFとかはコレで完全に防げるという感じではなさそう

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/ASnoKaze/20150220/1424449810