改めてiOS9のCookie設定を検証|SFSafariViewController

改めてiOS9のCookie設定を検証|SFSafariViewController

最近、トラッキング広告、いわゆる追跡バナーの話題をよく耳にしませんか?

トラッキング広告とは、WEBサイトを閲覧した個人(ここではブラウザ)を識別して、過去の履歴などからその人に最適化された広告のことです。

最近閲覧した車の情報が、別のページに広告として出てくることありませんか?
あれです。あれがトラッキング広告です。

このトラッキング技術はサイトとアプリの連携にもよく利用されています。

そしてトラッキング広告を実現するための技術の一つとしてCookieがあります。
Cookieは最もよく使われるユーザトラッキングの手法で、アクセス解析やサイトとアプリの連携解析も、これで行っています。

先日、待望のiOS9正式版がリリースされSFSafariViewControllerも実装されましたので、改めてCookieの設定について検証&再学習してみました。

Cookieの種類とSFSafariViewController

本題に入る前に、まずはCookieの種類について簡単におさらい。

Cookieにはアクセスしたサーバーの情報しか読み書きできないファーストパーティCookieと、他のサイトが発行権を持つサードパーティCookieがあります。

それぞれは厳格に区別されていて、他のサイトのCookieを外部からユーザの許可なく取得することは基本できません。これをできてしまう状況を脆弱性といい、各ブラウザの対策課題です。実際、そうした問題も発生しています。

Google Analyticsの場合、安全性を高めるために他のサイトが共有可能なサードパーティCookieは使用されません。解析ツールであってもファーストパーティで発行される場合、その対象ドメインを経由することなくCookieを参照することはできなくなります。

参考:GoogleAnalyticsのCookieは、なぜサードパーティCookieではなく、ファーストパーティCookieなのか?(※図がわかりやすいです。)

mobile Safariでも未訪問のサードパーティCookieはブロックする仕様がデフォルトで設定されています。

iOS9ではSFSafariViewControllerが実装されたことによりアプリ側からのCookie共有も容易になりました。
よって、Safariと共有するCookieのあり方も、より重要になってきます。

今回はこれを踏まえた上での検証となります。

Cookieを利用した書き込みレベルの検証

http://xx.xx.xx.135/のページにiframeでhttp://xx.xx.xx.152/を埋め込み、それぞれのページでcookieを書き込む検証をしてみたいと思います。

http://xx.xx.xx.135/3rd.html

http://xx.xx.xx.152/3rd.html

cookieの設定をする

[設定] > [safari] > [Cookieをブロック] とすすみCookieの設定をします。

image13

デフォルトでは「訪問したWebサイトを許可」になっています。

常に許可で検証

Cookieの設定を「常に許可」に変更して、xx.xx.xx.135にアクセスした結果をPC版safariのインスペクタで確認します。

■ xx.xx.xx.135ドメインのCookie

image03

いわゆるファーストパーティーのCookieです。
問題なく書き込みができています。

■ xx.xx.xx.152ドメインのCookie

image07

いわゆるサードパーティーのCookieです。
こちらも問題なく書き込みができています。

訪問したWebサイトを許可

続いてCookieの設定を「訪問したWebサイトを許可」に変更します。

■ xx.xx.xx.135ドメインのCookie

image03

■ xx.xx.xx.152ドメインのCookie

image07

xx.xx.xx.152のドメインは先ほど訪問しているので、Cookieの書き込みができています。
(キャプチャに変化がないですが、新しく書き込んでいるのですよ)

アクセス中のWebサイトのみ許可

続いてcookieの設定を「アクセス中のWebサイトのみ許可」に変更します。

■ xx.xx.xx.135ドメインのcookie

image03

■ xx.xx.xx.152ドメインのcookie

image09

やっと変化がありました。
現在アクセスしているのはxx.xx.xx.135ドメインであって、xx.xx.xx.152ドメインではないため書き込みができていません。
サードパーティーcookieの書き込みが防がれています。

常にブロック

続いてcookieの設定を「常にブロック」に変更します。

■ xx.xx.xx.135ドメインのcookie

ブロックしているのでファーストパーティーcookieの書き込みもできません。
当然サードパーティーcookieはもってのほかです。

image11

結果は見ての通り想定した結果となりました。

訪問したWebサイトを許可の追加検証

訪問したことのあるドメインであればiframe経由でもcookieが書き込まれることがわかりました。
では一度訪問してからcookieを削除し、再訪問してみましょう。

一度、履歴を全て削除します。
[設定] > [safari] > [履歴とWebサイトデータを消去]

coooki設定を[常に許可]に設定し、xx.xx.xx.135にアクセスします。
xx.xx.xx.152ドメインのCookieも書き込みされています。

image07

xx.xx.xx.152ドメインのCookieを削除します。

coooki設定を[訪問したWebサイトを許可]に設定し、xx.xx.xx.135にアクセスします。
今度はxx.xx.xx.152ドメインのCookieは書き込みされませんでした。

image09

まとめ

結果はiOS8でのCookieの扱いと、iOS9でのCookieの扱いに変化はありませんでした。

そもそもトラッキングを嫌う動きが活発になってきていますが、現時点では「訪問したWebサイトを許可」がiPhoneのデフォルトなので、その範囲であれば情報収集も可能です。

SFSafariViewControllerが実装されたことにより、トラッキングはユーザビリティが損なわず、プライバシー侵害にならないレベルでCookieの仕様をしっかり把握してやっていただきたいと思います。

また、いかに多くのドメインにCookieを書き込めるかが広告トラッキングのキーであることもiOS9でも変わらないようです。

よって、Cookieを読み書き送信処理すらブロックするコンテンツブロッカーの登場で「アプリのトラッキングは楽になったが、ブラウザのトラッキングは困難になった」状況をいかに打破するかが、当面の課題になりそうです。

【週刊bitWave】(メルマガ)始めました!

登録はこちらからメールアドレスを入力してお申込みください。

ご登録いただいたメールアドレスは 【週刊bitWave】の更新情報の配信にのみ使用します。

個人情報の取扱いに関しては、「プライバシーポリシー」をご確認ください。解除はいつでこちらから行うことが可能です。

あなたにおすすめ

じぶん銀行「AI外貨予測」「AI外貨自動積立」国際的なアワードでファイナリストに... 「SMART × MOBILE = SMILE」 SMARTな「金融サービス」とMOBILEならではの「楽しさ」そして皆さまに「SMILE」をコンセプトに、スマホアプリで快適に資金管理できると評判の「じぶん銀行」。 じぶん銀行の...
夫婦で共有できる人気のおすすめ家計簿アプリ【Android/iPhone対応】... 以前まではノートなどに手書きで記録することが多かった家計簿ですが、最近ではスマホの普及もあり家計簿アプリを活用している方が多いそうです。 手書きだとつい計算を間違えてしまったり、間違えて数字を書いたまま進めてしまうなど、色々と手間がか...
【Xperia XZ2 compact VS iPhone SE】徹底比較|あなたに合ったスマホを診... スマホが誕生して以来、そのディスプレイサイズは徐々に大型化してきています。 2018年現在では主流のスマホは概ね5.5〜6.3インチのディスプレイを搭載しています。 スマホユーザーの中には「大画面スマホの映像は迫力があるけど操作...
スマホが壊れた!?故障・修理の際に借りる「代替機」にまつわる注意点... 通常、スマホが故障したら修理に出して代替機を借りますよね。実は、その代替機を借りる際、忘れてはいけない注意点があるのです。 うっかりすると、修理費よりも代替機を借りたことによる費用の方が高くなってしまう…なんてこともあり得ます。 ...