web-dev-qa-db-ja.com

ブラウザーがインストールされているフォントを公開するのはなぜですか?

(少なくともプライバシーを意識したコミュニティでは)よく知られている事実ですが、追跡によく使用される要素は、ブラウザが公開していると思われるインストール済みフォントのリストであり、トラッカーがこれを悪用することです。

これを回避する方法(インストールされているフォントのスプーフィングリストなど)については多くの質問と回答がありますが、私は疑問に思っています:なぜブラウザーが必要かインストールされているフォントを公開するには?そもそも、どのようなユースケースを満たしていますか?

5
WhyNotHugo

ゲームのような超精密な画面レイアウトの場合、開発者はしばしば、何かがレンダリングされるサイズを知る必要があります。開発者はブラウザに、たとえば10pxで描画するように指示できますが、OSのフォントサイズ設定、ズーム、フォントのバリエーションなどが、実際のレンダリングされる高さに影響を与える可能性があります。出力サイズを読み戻すことにより、「適切」になるまで小さなフォントサイズの調整を行うことができます。このメカニズムは、フォントだけでなく、ページ上のすべてのボックスに当てはまりますが、ボックスは通常、テキストコンテンツを埋めるように「ストレッチ」します。特定のフォントでレンダリングすると、新しいフォントが作成される前とは異なる寸法でボックスを残す場合、2つを結合すると明らかになります。適用されました。

教科書の例では、別の協調ドメインのエラーメッセージページに合わせてiframeのサイズを変更しています。

カスタムフォントはOSの組み込みに依存するのではなく、ページ自体を使用してWeb経由で配信できるため、今すぐフォントのブロックを開始しても安全です。それらも発見することができますが、ページがそれらをもたらしたので、発見する価値はありません。発見は正しい言葉であることに注意してください。ネイティブまたはWebベースのフォントリストを反復処理する方法はないため、推測とチェックが唯一の方法です。

4
dandavis

ブラウザは、インストールされているフォントのリストを直接利用できるようにはしません。代わりに、テキストボックスのような特定のオブジェクトのサイズに関する情報を提供します。異なるフォントでレンダリングされた同じテキストによりオブジェクトサイズがわずかに異なるため、これを使用して、特定のテキストのレンダリングに使用されたフォントを推測し、特定のフォントがテキストのレンダリングに使用されたかどうかを確認できます(したがって、システムにインストールされています)。か否か。

詳細については、browserleaks.comの Font Fingerprinting または論文 フォントメトリックによるWebユーザーのフィンガープリント を参照してください。

4
Steffen Ullrich