更新の制約

このドキュメントは、Update API(v4)メソッド threatListUpdates.fetch に適用されます。

制約の設定

ローカル データベースを更新する場合(データベースの更新を参照)、クライアントは threatListUpdates.fetch リクエストmaxUpdateEntries フィールドと maxDatabaseEntries フィールドを使用してサイズ制約を指定できます。クライアントは、クライアントの RAM、ディスク、帯域幅の予測可能な消費量を維持し、リストの増加を防ぐために制約を設定する必要があります。

  • クライアントは、更新レスポンスの最大サイズ(maxUpdateEntries)をエントリ数に指定できます(1 エントリ = 1 追加または 1 削除)。
  • クライアントは、最大データベース サイズ(maxDatabaseEntries)をエントリ数で指定できます(データベース内のエントリの大半は 4 バイトのハッシュ プレフィックスであるため、1 エントリを約 4 バイトと想定して構いません)。

帯域幅とストレージ

クライアントではアップデート レスポンスとデータベースのサイズに任意のサイズを指定できますが、セーフ ブラウジング サーバーが事前生成するアップデート レスポンスとデータベースのサイズには限りがあります。

  • クライアントは、帯域幅の使用量を制限するために、更新レスポンスのサイズ(maxUpdateEntries)を使用する必要があります。
  • クライアントはデータベース サイズ(maxDatabaseEntries)を使用して、デバイスで必要な RAM またはディスク ストレージの量を制限する必要があります。
どちらの上限も、更新されるデータベースのサイズに影響するため、ユーザーに提供される保護のレベルにも影響します(つまり、ローカル データベースのサイズが大きいほど保護が向上します)。

制約の設定に関するガイダンス

セーフ ブラウジング リストのサイズは、段階的または突然変わることがあります。クライアントは、リスト更新リクエストに対して maxUpdateEntries を設定する必要があります。これにより、リスト更新レスポンスの最大サイズが制限され、大規模な更新を処理できない場合の信頼性が向上します。

より厳しい要件やそれほど厳格でない要件がない場合は、maxUpdateEntries=16777216 を使用することをおすすめします。一般的なリストエントリのサイズはハッシュ プレフィックスあたり 4 バイトであるため、リストあたり約 67 メガバイトに相当します。モバイル クライアントの場合は通常、容量が小さいため、上限を maxUpdateEntries=2097152 に設定することをおすすめします。一般的なリストエントリ サイズがハッシュ プレフィックスあたり 4 バイトの場合、リストあたり約 8 MB に相当します。

セーフ ブラウジング リストはサイズと増加率が異なります。ただし、クライアントは各リストで許容されるメモリまたは帯域幅の最大使用量に基づいて、すべてのリストに同じ制約を設定する必要があります。

Google では、信頼性を向上させるために、メモリまたは帯域幅の過剰使用を検出するためのテレメトリーと、クライアントに新しい制約を迅速に提供するメカニズムをクライアントで実装することをおすすめします。

クライアントの状態

セーフ ブラウジング サーバーが、クライアントを古い状態のままにする更新を送信することはありません。更新リクエストが行われるたびに、クライアントは完全に最新の状態になります。たとえば、クライアントに現在 4,096 エントリのデータベースがあり、ダウンロードできる差分が最大 2,048 件のみである場合、クライアントが実際に古くなっている場合、サーバーはクライアントを 2,048 データベースにリセットできます。