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)

クライアントサイドのキャッシュ期間。クライアントは、この継続時間を現在の時刻に追加して有効期限を決定しなければなりません。その後、レスポンスで返される完全なハッシュの数に関係なく、リクエストでクライアントからクエリされたすべてのハッシュ接頭辞に有効期限が適用されます。サーバーが特定のハッシュ接頭辞に対して完全なハッシュを返さない場合でも、この事実はクライアントによってキャッシュされなければなりません。

重要: クライアントは、サーバーがすべてのレスポンスで同じキャッシュ期間を返すことを想定してはなりません。サーバーは、状況に応じて異なるレスポンスに異なるキャッシュ期間を選択しても構いません。

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)

順序なしリスト。それらの完全なハッシュに関する追加属性。空の場合もあります。

ThreatType

脅威の種類。

列挙型
THREAT_TYPE_UNSPECIFIED 脅威の種類が不明です。これがサーバーから返された場合、クライアントはそれを含む FullHashDetail を完全に無視します。
MALWARE

マルウェアの脅威の種類。マルウェアとは、ソフトウェアまたはモバイルアプリであり、特にパソコン、モバイル デバイス、それらで実行されているソフトウェア、パソコンやモバイル デバイスのユーザーに対して有害な影響を与えることを目的として設計されたものを指します。マルウェアは、ユーザーの同意なしにソフトウェアをインストールする、ウイルスなどの有害なソフトウェアをインストールするなど、悪意のある動作を示します。

詳細につきましては、こちらをご覧ください。

SOCIAL_ENGINEERING

ソーシャル エンジニアリングの脅威の種類。ソーシャル エンジニアリング ページは、閲覧者を混乱させて、そのサードパーティの真の代理人しか信頼できないような、第三者の代理としてふさわしいと偽っています。フィッシングはソーシャル エンジニアリングの一種で、視聴者をだまして、ログイン認証情報などの特定の情報を提供させる特定のアクションを実行させます。

詳細につきましては、こちらをご覧ください。

UNWANTED_SOFTWARE 望ましくないソフトウェアの脅威の種類。望ましくないソフトウェアとは、Google のソフトウェア原則に準拠していなくても、マルウェアではないソフトウェアのことです。
POTENTIALLY_HARMFUL_APPLICATION Play ストアの Google Play プロテクトで使用される、有害な可能性があるアプリの脅威の種類。

ThreatAttribute

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

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