Chrome、Safari、Firefox でのユーザー エージェントの削減

王林
リリース: 2024-08-06 17:06:39
オリジナル
911 人が閲覧しました

User Agent Reduction in Chrome, Safari & Firefox

はじめに: ユーザーエージェント削減とクライアントヒントとは何ですか?

近年、プライバシーへの懸念により、ブラウザーがユーザー エージェント文字列を処理する方法が大きく変わりました。従来、ブラウザーとデバイスの情報を識別するために使用されてきたユーザー エージェント文字列は、共有される情報の量を制限するために削減され、それによってユーザーのプライバシーが保護されています。ユーザー エージェント削減の制限に対処するために、必要な情報を共有するためのより制御されたプライバシーを尊重した方法を提供するクライアント ヒントがソリューションとして登場しました。

ブログ投稿全文はこちらからお読みください

ユーザーエージェント文字列の簡単な歴史

ユーザー エージェント文字列は、Tim Berners-Lee の WorldwideWeb から始まる、Web ブラウザの初期の時代にまで遡ります。当初、それらは基本的なブラウザーとバージョン情報を提供する単純なものでした。時間が経つにつれて、オペレーティング システム、デバイスの種類などに関する詳細なデータが含まれるように進化し、Web 分析やユーザー エクスペリエンスの最適化に役立つことが判明しました。ただし、この詳細によりデバイスのフィンガープリンティングも可能になり、プライバシーの懸念が生じました。

ユーザーエージェント削減とは何ですか?

ユーザー エージェントの削減は、ユーザー エージェント文字列内の情報を最小限に抑えてユーザーのプライバシーを保護することを目的としています。特定の OS バージョンやハードウェア モデルなどのエントロピーの高い情報が削減されます。たとえば、Google の Chrome は、あまり詳細ではないユーザー エージェント文字列を報告するようになりました:

  • 以前: Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML、Gecko など) Chrome/95.2.1.0 Mobile Safari/537.36
  • 変更後: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML、Gecko など) Chrome/95.0.0.0 Mobile Safari/537.36

同様に、Firefox と Safari は独自のバージョンのユーザー エージェント削減を実装していますが、独自のポリシーに基づいて若干の違いがあります。

クライアントヒントはどのように機能しますか?

クライアント ヒントは、プライバシーを意識した方法で、ユーザーのデバイスとブラウザに関する特定の高エントロピー情報を要求する方法を提供します。クライアント ヒントにアクセスするには、主に 2 つの方法があります:

  1. HTTP リクエスト ヘッダー: Web サイトは、HTTP リクエスト ヘッダーを使用して、ユーザーのブラウザとデバイスに関する特定の情報をリクエストできます。これは通常、ファーストパーティのコンテキストで使用され、詳細なユーザー情報がサードパーティのリソースではなくプライマリ Web サイトにのみアクセスできるようにします。
  2. JavaScript API: クライアント ヒントには、JavaScript 内の navigator.userAgentData オブジェクト経由でもアクセスできます。これにより、追加のヘッダーを設定せずに、アーキテクチャ、モデル、プラットフォームのバージョンなどの特定の情報を動的にクエリできます。

クライアントヒントの実装

HTTPリクエストヘッダーの使用

HTTP ヘッダーを介してクライアント ヒントを実装するには、サーバーは HTTP 応答に適切なヘッダーを設定し、今後のリクエストにこれらのヒントを含めるようブラウザーに信号を送信する必要があります。例:

Accept-CH: Sec-CH-UA-Platform-Version
ログイン後にコピー

ブラウザからの後続のリクエストにはプラットフォームのバージョンが含まれます:

Sec-CH-UA-Platform-Version: "14.5.0"
ログイン後にコピー

JavaScript APIの使用

動的アプリケーションの場合、JavaScript API は柔軟性を提供します。たとえば、getHighEntropyValues メソッドを使用します:

if (navigator.userAgentData) {
    navigator.userAgentData.getHighEntropyValues(['architecture', 'model', 'platformVersion'])
        .then(ua => {
            console.log(ua);
        });
}
ログイン後にコピー

開発者向けの推奨事項

特定のニーズに応じて、ユーザー環境データを収集するためのさまざまな方法を選択できます。

  • 機能検出: 可能な限り既存のブラウザー JavaScript API を使用します。これは、ユーザー エージェント文字列に依存するよりも信頼性が高く、将来性もあります。
  • 低エントロピー情報: デバイス タイプなどの基本的な詳細については、ユーザー エージェント文字列で十分な場合があります。
  • 高エントロピー情報: 詳細情報が必要で、ドメインを制御できる場合は、クライアント ヒントを使用します。

結論

ユーザー エージェントの削減とクライアント ヒントは、Web サイトが最適な機能に必要な情報を収集できるようにしながら、ユーザーのプライバシーを強化するための重要なステップとなります。これらのテクノロジーを理解して実装することで、開発者は詳細なユーザー データの必要性とプライバシーとパフォーマンスの考慮事項のバランスを取ることができます。

詳細については、詳細なブログ投稿をご覧ください。

以上がChrome、Safari、Firefox でのユーザー エージェントの削減の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!