近年、プライバシーへの懸念により、ブラウザーがユーザー エージェント文字列を処理する方法が大きく変わりました。従来、ブラウザーとデバイスの情報を識別するために使用されてきたユーザー エージェント文字列は、共有される情報の量を制限するために削減され、それによってユーザーのプライバシーが保護されています。ユーザー エージェント削減の制限に対処するために、必要な情報を共有するためのより制御されたプライバシーを尊重した方法を提供するクライアント ヒントがソリューションとして登場しました。
ブログ投稿全文はこちらからお読みください
ユーザー エージェント文字列は、Tim Berners-Lee の WorldwideWeb から始まる、Web ブラウザの初期の時代にまで遡ります。当初、それらは基本的なブラウザーとバージョン情報を提供する単純なものでした。時間が経つにつれて、オペレーティング システム、デバイスの種類などに関する詳細なデータが含まれるように進化し、Web 分析やユーザー エクスペリエンスの最適化に役立つことが判明しました。ただし、この詳細によりデバイスのフィンガープリンティングも可能になり、プライバシーの懸念が生じました。
ユーザー エージェントの削減は、ユーザー エージェント文字列内の情報を最小限に抑えてユーザーのプライバシーを保護することを目的としています。特定の OS バージョンやハードウェア モデルなどのエントロピーの高い情報が削減されます。たとえば、Google の Chrome は、あまり詳細ではないユーザー エージェント文字列を報告するようになりました:
同様に、Firefox と Safari は独自のバージョンのユーザー エージェント削減を実装していますが、独自のポリシーに基づいて若干の違いがあります。
クライアント ヒントは、プライバシーを意識した方法で、ユーザーのデバイスとブラウザに関する特定の高エントロピー情報を要求する方法を提供します。クライアント ヒントにアクセスするには、主に 2 つの方法があります:
HTTP ヘッダーを介してクライアント ヒントを実装するには、サーバーは HTTP 応答に適切なヘッダーを設定し、今後のリクエストにこれらのヒントを含めるようブラウザーに信号を送信する必要があります。例:
Accept-CH: Sec-CH-UA-Platform-Version
ブラウザからの後続のリクエストにはプラットフォームのバージョンが含まれます:
Sec-CH-UA-Platform-Version: "14.5.0"
動的アプリケーションの場合、JavaScript API は柔軟性を提供します。たとえば、getHighEntropyValues メソッドを使用します:
if (navigator.userAgentData) { navigator.userAgentData.getHighEntropyValues(['architecture', 'model', 'platformVersion']) .then(ua => { console.log(ua); }); }
特定のニーズに応じて、ユーザー環境データを収集するためのさまざまな方法を選択できます。
ユーザー エージェントの削減とクライアント ヒントは、Web サイトが最適な機能に必要な情報を収集できるようにしながら、ユーザーのプライバシーを強化するための重要なステップとなります。これらのテクノロジーを理解して実装することで、開発者は詳細なユーザー データの必要性とプライバシーとパフォーマンスの考慮事項のバランスを取ることができます。
詳細については、詳細なブログ投稿をご覧ください。
以上がChrome、Safari、Firefox でのユーザー エージェントの削減の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。