1.10 プライバシーの考慮
この節は標準仕様ではありません。
HTML のいくつかの機能は、ユーザーのプライバシーの観点から、利便性を犠牲にしています。
一般的に、インターネットの構造上の理由から、ユーザーは IP アドレスによって個別に識別され得ます。 IP アドレスはユーザーとは完全には一致しません。 ユーザーは異なる機器、ネットワーク間を移動するため、ユーザーの IP アドレスは変化します。 同様に、 NAT ルーティング、プロキシサーバー、共有コンピュータによって、全て単一の IP アドレスから来ているように見えるパケットを、実際には複数のユーザーに割り当てることが可能です。
オニオンルーティングのような技術を使うと、インターネット上の単一ノードに存在する単一のユーザーからのリクエストを、ネットワークの異なる複数の場所から送られてくるように見せかけて、リクエストをさらに匿名化することができます。
しかし、ユーザーのリクエストに使われる IP アドレスが個々のユーザーを識別するための唯一のメカニズムではありません。 例えば、クッキーはユーザーの識別を可能にするために特に設計されたものであり、あなたがアカウントを持つサイトへのログインを可能にするほとんどの Web のセッション機能の基盤となっています。
より巧妙な他のメカニズムもあります。 ユーザーのシステムのある種の特徴は、ユーザーのグループを区別するために利用できます。 そのような情報を十分に集めることにより、ユーザーごとのブラウザの「電子指紋」が計算され、どのリクエストが同一のユーザからのものなのかを IP アドレスと同等レベルで(より優れてはいないにしても)突きとめることができます。
このような方法で、特に複数サイトにまたがって、リクエストをグループ化することは、良い(あるいはおそらく実用的な)目的にも、悪い目的にも利用できます。比較的良好な目的の例としては、ある人物が猫のイラストよりも犬のイラストを好むように見受けられるかを(どの程度そのようなサイトを訪問しているかに基づいて)決定し、その後の関連サイトの訪問時に自動的に好みのイラストを使用する、というようなことが挙げられます。 逆に、悪い目的としては、政府が(サイト上で運転経路を検索した際に使った住所から判明した)その人の自宅の住所と、(その人が参加しているフォーラムのサイトを調査した結果判明した)その人の政治的な関係を結びつけ、その人が選挙で投票できないようにするべきかどうかを決める、というようなことが挙げられます。
悪い目的は非常に邪悪たり得るため、ユーザーエージェントの実装者は、ユーザーの識別に利用できる情報の漏えいを最小化するツールをどのようにユーザーに提供するかについて考慮することが推奨されます。
残念ながら、この節の最初の段落が暗示しているように、ユーザーを識別する目的に利用し得るまさにその情報を公開することによって大きな恩恵が生じることもあるため、発生し得る漏洩を単純に全てブロックすればよいというものでもありません。例えば、特定のアイデンティティーの元に記事を投稿するためにサイトにログインできるという機能は、当然ながら、ユーザーのリクエストが全て同一ユーザーからのものであると多少なりとも特定できる必要があります。しかし、より細かい話としては、テキストの横幅のような情報は、キャンバスへのテキストの描画を含む多くのエフェクト(例えば、テキストの周りに枠線を描画するような全てのエフェクト)で必要ですが、そのような情報もユーザーのリクエストをグループ化するために利用できる情報を漏洩させます。(この場合は、ユーザがどのフォントをインストールしているかという、ユーザーごとに相当に異なる情報を総当たり方式で検索して潜在的に公開することによってその情報を漏洩させます。)
この仕様書内で、ユーザを特定することができる特徴は、この段落にあるように印が付けられています。
ただし、プラットフォームの他の特徴も同様の目的で使用できます。 それらは(これらに限られませんが)例えば以下のような特徴です:
- ユーザーエージェントがサポートする機能の正確なリスト
- スクリプト内での再帰呼び出しのスタック深度の最大許容値
- メディアクエリや
Screen
オブジェクトなどの、ユーザー環境を表す機能 [MQ] [CSSOMVIEW] - ユーザーのタイムゾーン