Method: hashes.search

指定されたプレフィックスに一致する完全なハッシュを検索します。

これは、https://google.aip.dev/136 で定義されているカスタム メソッドです(カスタム メソッドとは、Google の一般的な API 開発用語でカスタム名を持つこのメソッドを指し、カスタム HTTP メソッドの使用を指すものではありません)。

HTTP リクエスト

GET https://safebrowsing.googleapis.com/v5/hashes:search

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

クエリ パラメータ

パラメータ
hashPrefixes[]

string (bytes format)

必須。検索するハッシュ プレフィックス。クライアントは 1,000 を超えるハッシュ接頭辞を送信してはなりません。ただし、URL 処理手順に従い、クライアントは 30 個を超えるハッシュ接頭辞を送信する必要はありません。

現在、各ハッシュ プレフィックスの長さは 4 バイトである必要があります。今後、この制限が緩和される可能性があります。

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

リクエストの本文

リクエストの本文は空にする必要があります。

レスポンスの本文

脅威ハッシュの検索後に返されるレスポンス。

何も見つからない場合、サーバーは NOT_FOUND ステータス(HTTP ステータス コード 404)ではなく、fullHashes フィールドが空の OK ステータス(HTTP ステータス コード 200)を返します。

V5 の新機能: FullHashFullHashDetail が分離されています。ハッシュが複数の脅威(MALWARE と SOCIAL_ENGINEERING の両方など)を含むサイトを表す場合、V4 のように完全なハッシュを 2 回送信する必要はありません。また、キャッシュの有効期間は単一の cacheDuration フィールドに簡素化されました。

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

JSON 表現
{
  "fullHashes": [
    {
      object (FullHash)
    }
  ],
  "cacheDuration": string
}
フィールド
fullHashes[]

object (FullHash)

順序なしリスト。検出された完全なハッシュの順序なしリスト。

cacheDuration

string (Duration format)

クライアントサイド キャッシュの存続期間。クライアントは、この期間を現在の時刻に加算して有効期限を決定する必要があります。有効期限は、レスポンスで返される完全なハッシュの数に関係なく、リクエストでクライアントがクエリしたすべてのハッシュ プレフィックスに適用されます。サーバーが特定のハッシュ プレフィックスの完全なハッシュを返さない場合でも、この事実もクライアントによってキャッシュに保存する必要があります。

フィールド fullHashes が空の場合に限り、クライアントは cacheDuration を増やして、サーバーによって指定された有効期限よりも新しい有効期限を決定できます。いずれの場合も、キャッシュの保存期間を延長しても 24 時間を超えないようにしてください。

重要: サーバーがすべてのレスポンスで同じキャッシュ持続時間を返すと想定することはできません。サーバーは、状況に応じて、レスポンスごとに異なるキャッシュ時間を選択できます。

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

FullHash

1 つ以上の一致で識別された完全なハッシュ。

JSON 表現
{
  "fullHash": string,
  "fullHashDetails": [
    {
      object (FullHashDetail)
    }
  ]
}
フィールド
fullHash

string (bytes format)

一致する完全なハッシュ。これは SHA256 ハッシュです。長さは 32 バイトになります。

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

fullHashDetails[]

object (FullHashDetail)

順序なしリスト。この完全なハッシュに関連する詳細を識別する繰り返しフィールド。

FullHashDetail

一致する完全ハッシュの詳細。

将来の互換性に関する重要な注意事項: 新しい脅威タイプと脅威属性は、サーバーがいつでも追加できます。これらの追加は、マイナー バージョンの変更と見なされます。Google のポリシーでは、API でマイナー バージョン番号を公開しないことを定めています(バージョニング ポリシーについては、https://cloud.google.com/apis/design/versioning をご覧ください)。そのため、クライアントは、クライアントが無効とみなす ThreatType 列挙値または ThreatAttribute 列挙値を含む FullHashDetail メッセージを受信する準備をする必要があります。したがって、すべての ThreatTypeThreatAttribute 列挙型値の有効性を確認するのはクライアントの責任です。いずれかの値が無効と見なされた場合、クライアントは FullHashDetail メッセージをすべて無視する必要があります。

JSON 表現
{
  "threatType": enum (ThreatType),
  "attributes": [
    enum (ThreatAttribute)
  ]
}
フィールド
threatType

enum (ThreatType)

脅威の種類。このフィールドは空になりません。

attributes[]

enum (ThreatAttribute)

順序なしリスト。完全なハッシュに関する追加属性。空でもかまいません。

ThreatAttribute

脅威の属性。これらの属性は、特定の脅威に追加の意味を与えることができますが、脅威の種類には影響しません。たとえば、ある属性では信頼度が低く、別の属性では信頼度が高い場合があります。今後、さらに多くの属性が追加される可能性があります。

列挙型
THREAT_ATTRIBUTE_UNSPECIFIED 不明な属性。サーバーがこれを返した場合、クライアントは囲んでいる FullHashDetail を完全に無視します。
CANARY 適用に threatType を使用しないことを示します。
FRAME_ONLY threatType はフレームへの適用にのみ使用されることを示します。