先日割と感情的に呟いたものがそこそこ拡散されてしまって、「良くないものだ」という気持ちだけが広まってしまうのは本意ではないので、改めてきちんとした議論をしたいという思いでこの記事を書きます。
アドエビスによる解説がわかりやすいです。最近の Third-party Cookie に対する制限の回避策となり得ます。
Set-Cookie
ヘッダに Domain
ディレクティブを指定した場合、すべてのサブドメインに Cookie
が送信されてしまいます。もし認証に用いる機密情報などをこの方法で設定した場合、CNAME レコードとして設定したトラッキングサービスにも Cookie が送信されてしまいます。Set-Cookie - HTTP | MDN
Third-party Cookie を使用して情報を収集する場合、ユーザーが Third-party Cookie をブロックすればトラッキングを防ぐことができます。また、これによってトラッキング以外の要素に与える影響はあまり大きくありません (Third-party Cookie を認証に使うようなことがない限り...)。一方、First-party Cookie を用いてトラッキングをする場合、ユーザーができることは First-party Cookie を拒否することです。First-party Cookie は認証などの様々な用途に使われており、影響は大きくなると想定されます。
First-party Cookie をブロックすることによる影響が大きいことを鑑みると、これはユーザーによる積極的な行動とみるべきです。私の提案としては、ユーザーの不便が行動による効果を上回る場合、積極的な行動と取るべきだと考えています。積極的な行動か否かの判断は極めて難しいものであり、今後議論が進むことを期待します。
次に、ブラウザの拡張機能によって事前に DNS をクエリし、トラッキングサービスへの CNAME レコードがあればアクセスをブロックするという手法が考えられます。この手法にはいくつかの問題があります。すべてのリクエストごとに DNS クエリを走らせるため、パフォーマンスに影響が出ることが想定されます。ブラウザが拡張機能に対して DNS クエリを行う機能を提供するかどうかに依存します。
現時点において、有効な選択肢をユーザーに与えることが難しいこと・セキュリティの問題があることを踏まえると、代替手段が存在しない場合にのみ CNAME トラッキングを導入するべきだと考えます。
Set-Cookie
の不適切な設定による機密情報の漏洩を防ぐため、導入者に対して必要十分な助言をすることSet-Cookie
について正しい知識を得て、Cookie の漏洩が起こらないようにすること