Method: threatListUpdates.fetch

最新の脅威リストの更新を取得します。クライアントは、複数のリストの更新を一度にリクエストできます。

HTTP リクエスト

POST https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch

この URL は gRPC Transcoding 構文を使用します。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

JSON 表現
{
  "client": {
    object (ClientInfo)
  },
  "listUpdateRequests": [
    {
      object (ListUpdateRequest)
    }
  ]
}
フィールド
client

object (ClientInfo)

クライアント メタデータ。

listUpdateRequests[]

object (ListUpdateRequest)

リクエストされた脅威リストが更新されます。

レスポンスの本文

成功すると、レスポンスの本文に次の構造のデータが含まれます。

JSON 表現
{
  "listUpdateResponses": [
    {
      object (ListUpdateResponse)
    }
  ],
  "minimumWaitDuration": string
}
フィールド
listUpdateResponses[]

object (ListUpdateResponse)

クライアントがリクエストしたリストの更新。レスポンスの数は、クライアントから送信されたリクエストの数より少なくなる可能性があります。たとえば、サーバーに特定のリストに対する更新がない場合などです。

minimumWaitDuration

string (Duration format)

クライアントが更新リクエストを発行するまでの最小待機時間。このフィールドが設定されていない場合、クライアントはすぐに更新できます。

s で終わる小数 9 桁までの秒単位の期間。例: "3.5s"

ListUpdateRequest

単一のリスト更新リクエスト。

JSON 表現
{
  "threatType": enum (ThreatType),
  "platformType": enum (PlatformType),
  "threatEntryType": enum (ThreatEntryType),
  "state": string,
  "constraints": {
    object (Constraints)
  }
}
フィールド
threatType

enum (ThreatType)

リストに存在するエントリがもたらす脅威の種類。

platformType

enum (PlatformType)

リストに存在するエントリに基づく、リスクにさらされているプラットフォームのタイプ。

threatEntryType

enum (ThreatEntryType)

リストに含まれるエントリのタイプ。

state

string (bytes format)

リクエストされたリストのクライアントの現在の状態(最後に成功したリストの更新から受信した暗号化されたクライアントの状態)。

Base64 でエンコードされた文字列。

constraints

object (Constraints)

このリクエストに関連付けられている制約。

制約

このアップデートの制約。

JSON 表現
{
  "maxUpdateEntries": integer,
  "maxDatabaseEntries": integer,
  "region": string,
  "supportedCompressions": [
    enum (CompressionType)
  ],
  "language": string,
  "deviceLocation": string
}
フィールド
maxUpdateEntries

integer

最大サイズ(エントリ数)。アップデートには、この値を超えるエントリは含まれません。これは、2**10 と 2**20 の間の 2 の累乗である必要があります。ゼロの場合、アップデート サイズの上限は設定されません。

maxDatabaseEntries

integer

指定されたリストについて、クライアントがローカル データベースに保持するエントリの最大数を設定します。これは、2**10 と 2**20 の間の 2 の累乗である必要があります。ゼロの場合、データベース サイズの上限は設定されません。

region

string

特定の地理的位置のリストをリクエストします。設定されていない場合、サーバーはユーザーの IP アドレスに基づいてその値を選択します。ISO 3166-1 alpha-2 形式が必要です。

supportedCompressions[]

enum (CompressionType)

クライアントでサポートされている圧縮タイプ。

language

string

特定の言語のリストをリクエストします。ISO 639 alpha-2 形式が必要です。

deviceLocation

string

クライアントの物理的な場所。ISO 31166-1 alpha-2 の地域コードで表されます。

CompressionType

脅威エントリ・セットを圧縮する方法

列挙型
COMPRESSION_TYPE_UNSPECIFIED 不明。
RAW 未圧縮の未加工データ。
RICE Rice-Golomb でエンコードされたデータ。

ListUpdateResponse

個々のリストの更新。

JSON 表現
{
  "threatType": enum (ThreatType),
  "threatEntryType": enum (ThreatEntryType),
  "platformType": enum (PlatformType),
  "responseType": enum (ResponseType),
  "additions": [
    {
      object (ThreatEntrySet)
    }
  ],
  "removals": [
    {
      object (ThreatEntrySet)
    }
  ],
  "newClientState": string,
  "checksum": {
    object (Checksum)
  }
}
フィールド
threatType

enum (ThreatType)

データが返される脅威の種類。

threatEntryType

enum (ThreatEntryType)

脅威の形式。

platformType

enum (PlatformType)

データが返されるプラットフォーム タイプ。

responseType

enum (ResponseType)

レスポンスのタイプ。これは、レスポンスを受信したときに、クライアントによるアクションが必要であることを示している場合があります。

additions[]

object (ThreatEntrySet)

ローカルの脅威タイプのリストに追加するエントリのセット。圧縮データと元データの組み合わせを 1 つのレスポンスで送信できるようにするために、これを繰り返します。

removals[]

object (ThreatEntrySet)

ローカルの脅威タイプのリストから削除するエントリのセットです。実際には、このフィールドは空であるか、1 つの ThreatEntrySet のみが含まれます。

newClientState

string (bytes format)

暗号化された形式の新しいクライアントの状態。クライアントには不透明です。

Base64 でエンコードされた文字列。

checksum

object (Checksum)

クライアントの状態に想定される SHA256 ハッシュすなわち、指定された更新を適用した後にデータベースに存在するすべてのハッシュを並べ替えたリストです。クライアントの状態が想定された状態と一致しない場合、クライアントはこの更新を無視して、後で再試行する必要があります。

ResponseType

クライアントに送信されたレスポンスのタイプ。

列挙型
RESPONSE_TYPE_UNSPECIFIED 不明。
PARTIAL_UPDATE 部分更新は、クライアントの既存のローカル データベースに適用されます。
FULL_UPDATE クライアントのローカル データベース全体がフル アップデートに置き換わる。これは、クライアントが著しく古くなっているか、クライアントが破損していると考えられることを意味します。

ThreatEntrySet

クライアントのローカル データベースに対して追加または削除する必要のある一連の脅威。

JSON 表現
{
  "compressionType": enum (CompressionType),
  "rawHashes": {
    object (RawHashes)
  },
  "rawIndices": {
    object (RawIndices)
  },
  "riceHashes": {
    object (RiceDeltaEncoding)
  },
  "riceIndices": {
    object (RiceDeltaEncoding)
  }
}
フィールド
compressionType

enum (CompressionType)

このセットのエントリの圧縮タイプ。

rawHashes

object (RawHashes)

未加工の SHA256 形式のエントリ。

rawIndices

object (RawIndices)

ローカルリストの未加工の削除インデックス。

riceHashes

object (RiceDeltaEncoding)

SHA256 形式のエントリにエンコードされた 4 バイトの接頭辞(Golomb-Rice エンコードを使用)。ハッシュは uint32 に変換され、昇順で並べ替えられてから、デルタでエンコードされ、encodedData として保存されます。

riceIndices

object (RiceDeltaEncoding)

Golomb-Rice エンコードを使用して、エンコードされたローカルで辞書順で並べ替えられたリスト インデックス。圧縮された削除インデックスの送信に使用されます。削除インデックス(uint32)は昇順で並べ替えられ、差分エンコードされて encodedData として保存されます。

RawHashes

特定のプレフィックス長のハッシュ形式の非圧縮脅威エントリ。ハッシュのサイズは 4 ~ 32 バイトです。大半は 4 バイトですが、よく使用される URL のハッシュと競合すると長くなるハッシュもあります。

圧縮をサポートしていないクライアントに ThreatEntrySet を送信する場合、または圧縮をサポートしているクライアントに 4 バイト以外のハッシュを送信する場合に使用します。

JSON 表現
{
  "prefixSize": integer,
  "rawHashes": string
}
フィールド
prefixSize

integer

以下にエンコードされる各プレフィックスのバイト数。このフィールドは、4(最も短いプレフィックス)から 32(完全な SHA256 ハッシュ)の範囲で指定できます。

rawHashes

string (bytes format)

バイナリ形式のハッシュが 1 つの長い文字列に連結されます。ハッシュは辞書順に並べ替えられます。JSON API ユーザーの場合、ハッシュは base64 でエンコードされます。

Base64 でエンコードされた文字列。

RawIndices

ローカルリストから削除する未加工のインデックスのセット。

JSON 表現
{
  "indices": [
    integer
  ]
}
フィールド
indices[]

integer

辞書順で並べ替えたローカルリストから削除するインデックス。

RiceDeltaEncoding

Rice-Golomb でエンコードされたデータ。圧縮された 4 バイトのハッシュまたは圧縮された削除インデックスの送信に使用されます。

JSON 表現
{
  "firstValue": string,
  "riceParameter": integer,
  "numEntries": integer,
  "encodedData": string
}
フィールド
firstValue

string (int64 format)

エンコードされたデータの最初のエントリのオフセット。または、1 つの整数のみがエンコードされている場合は、その 1 つの整数の値。フィールドが空または欠落している場合は、ゼロと仮定します。

riceParameter

integer

Golomb-Rice パラメータ(2 ~ 28 の数値)。numEntries がゼロの場合、このフィールドはありません(つまり、ゼロ)。

numEntries

integer

エンコードされたデータでデルタ エンコードされたエントリの数。単一の整数のみがエンコードされている場合、これはゼロになり、単一の値が firstValue に保存されます。

encodedData

string (bytes format)

Golomb-Rice コーダーを使用してエンコードされた差分。

Base64 でエンコードされた文字列。

チェックサム

クライアントのローカル データベースの想定される状態。

JSON 表現
{
  "sha256": string
}
フィールド
sha256

string (bytes format)

クライアント状態の SHA256 ハッシュつまり、データベースに存在するすべてのハッシュを並べ替えたリストです。

Base64 でエンコードされた文字列。