UIT INSIDE

LINE UIT室の開発者による「最新のフロントエンド」をキャッチアップできる Podcast

  • オープニング
    00:00
  • 1. ITP とは?
    00:33
  • 2. サードパーティクッキーについて
    04:21
  • 3. ITP のモチベーション
    06:58
  • 4. Safari における Cookie の挙動
    08:18
  • 5. 各ブラウザの動向
    11:05
  • 6. ITP の立ち位置
    12:49
  • 7. LINE における対応
    15:13
  • 8. ウェブトラッキングの今後
    18:43
  • 9. クロージング
    22:08

ep.16 Safari で Cookie が無効に? ITP 2.2

2019/06/07
1027 views
HANATANI TakumaKawasaki Kohei

@potato4d が @kawasako に、 Safari に搭載される ITP 2.2 の話を聞いてみました。

ITP

  • インテリジェンス・トラッキング・プリベンション
    • preventDefault の prevent
  • Safari におけるプライバシー保護のシステム
    • 2017 年から ITP 1.0 が存在、最新は 2.2
  • ITP 1.x
  • ITP 2.x
    • 1st-party cookie にも一部制限が入る
    • アプリケーションに影響がないように代替となる Storage Access API を制定
      • Safari / Firefox で利用可能

3rd-party Cookie を利用した従来型の Web Tracking のシステム

  • Cookie の種別
    • 1st-party cookie
      • 自身のドメイン
      • 所有者が同じと思われるサブドメインも信頼される
    • 3rd-party cookie
      • 外部リソースに対して書き込まれる Cookie 全般
        • CDN から配信される画像
        • Twitter ウィジェット
        • etc…
  • Third party cookie による Tracking の仕組み
    • ECサイトで洗濯機を買ったとする
      • 購買情報をトラッキング用のドメインへと送信
      • トラッキング用のドメインのcookieを媒介に自社のユーザーが他のサイトで何をしたか知れてしまう

トラッキングの心理的な問題

  • 例えば人が自転車を買った場合……
    • 同僚や友人に買った話をした
      • 話した人にプレゼントされる分には良い
      • 一方その話を知らないはずの人から自転車グッズを渡されるとびっくりする

ITP の実際の動作

  • 3rd-party cookie は完全に使えない
    • リダイレクトを行って一度 1st party cookie で焼いてから読み込むということもできない
  • 1st party cookie でも制限が
    • JavaScript から焼いた場合は 7 日間しか保持されない
    • クエリパラメータがある場合は 1 日しか保持されない
      • 上述のリダイレクト実装のように、ユーザー情報を引き渡してアクセスされた場合を想定
    • いずれにせよサブドメインについては考慮されない
  • ML でどう処理されているかを確認する
    • Preview 版の Safari で確認可能
    • 専用のデバッグモードが存在する

他のブラウザでのプライバシー保護

  • Firefox のケース
    • ブラックリスト形式を採用
      • 特定の Web サイトではそもそも保持しない
  • Chrome について
    • Chrome については 3rd party cookie についても利用可能

ITP 自体の仕組みについて

  • 規格ではない
    • Safari が自主的に行っている
  • Storage Access API については実装に影響するため標準化の動きがある
    • MDN に仕様が掲載されている

LINE 内の案件における方針について

  • 社内版の Web Analytics
    • 3rd party cookie の利用はしないポリシー
      • 全く違うサービスのデータを取り回すのは概念として良くない
      • LINE サービス内に限定して、匿名化した上で LINE のユーザー識別子を活用するなど工夫している
  • 広告まわり
    • 1st party cookie を活用するように移行中
    • 現状は localStorage に逃しつつ対応中
      • ただイタチごっこではあるので健全な利用をしていくと良さそう?

そもそもトラッキング必要なのか?

  • ちょっとした利用なら便利
    • コーラ飲みたい時にコーラがレコメンドされるみたいなもの
  • 一方でセンシティブな情報が共有される危険性
    • 物件を 1K で探し続けていると独身だとわかってしまう

これからについて

  • 現時点で行われている回避策
    • サーバーからTracking 用の cookie を発行する
    • 一時的な識別子を取り回して集計時に名寄せする
  • エンジニアがいたちごっこをすべきなのか
    • 事業的に必要なのはもちろんある
    • 一方で個人情報の保護が技術以外でも整備されている
    • 開発者としてもオプトアウト導線を考えるなど、工夫できると良い

クロージング