Blinkの開発者メーリングリストで「Intent to Prototype: Origin-Bound Cookies」という議論が行われています。
Cookieをより安全にするために、デフォルトでCookieをオリジンに紐づけるようにする提案です。Cookieをset-cookieしたオリジン以外からは、そのCookieにアクセスできないようになります。
詳しい背景や仕組みについては次のページから確認できます。
github.com
かんたんに、Origin-Bound Cookiesの動作をみていきましょう。
例
オリジンは、スキーム、ホスト名、ポートの組です。それらのうち一つでも異なれば、オリジンが異なることになります。
例えば、次のようになります。
- http://example.comによってセットされたcookieは、http://example.comにのみ送信されます。https://example.comには送られません。その逆も同様です。
- https://example.comによってセットされたcookieは、https://example.com:443にのみ送信されます。それ以外のポート宛では送信されることはありません。その逆も同様です
- https://sub.example.comによってセットされたcookieは、https://sub.example.comにのみ送信されます。https://example.comには送信されません。逆も同様です。
オプトアウト
議論されているOrigin-Bound Cookiesでは、デフォルトの動作を変更します。オリジンを超えてcookieを共有するために、オプトアウトする仕組みが提供されています。
domain属性を付与することで、オプトアウトできます。オプトアウトすることで、異なるホスト名、ポートとcookieを共有することが出来ます。ただし、異なるスキームに共有することは出来ません。
例えば、https://example.comからセットされたcookieでも「Domain=example.com」が設定されていてれば、https://example.com:1234やhttps://sub.example.comにはcookieが送信されます。ただし、スキームが異なるhttp://example.comには共有されません。