指定された接頭辞に一致する完全なハッシュを検索します。
これは、https://google.aip.dev/136 で定義されているカスタム メソッドです(カスタム メソッドとは、Google の一般的な API 開発の命名法におけるカスタム名を持つこのメソッドを指します。カスタム HTTP メソッドの使用を意味するものではありません)。
HTTP リクエスト
GET https://safebrowsing.googleapis.com/v5alpha1/hashes:search
この URL は gRPC Transcoding 構文を使用します。
クエリ パラメータ
パラメータ | |
---|---|
hashPrefixes[] |
必須。検索されるハッシュ接頭辞。クライアントは、1,000 個を超えるハッシュ プレフィックスを送信してはなりません。ただし、URL 処理手順に従い、クライアントは 30 個を超えるハッシュ プレフィックスを送信する必要がないべきではありません。 現在、各ハッシュ接頭辞はちょうど 4 バイトの長さである必要があります。これは今後緩和される可能性があります。 Base64 でエンコードされた文字列。 |
filter |
省略可。特定の種類の脅威のみを取得するなど、フィルタリングがクライアントで必要な場合は、この値を指定できます。省略すると、一致するすべての脅威が返されます。セーフ ブラウジングによる最大限の保護を実現するために、この設定を省略することを強くおすすめします。 フィルタは、Google Common Expression Language を使用して指定します。Google Common Expression Language は、一般的な例とともに https://github.com/google/cel-spec で確認できます。ここでは、具体的な例をいくつか紹介します。 フィルタ フィルタ |
リクエスト本文
リクエストの本文は空にする必要があります。
レスポンスの本文
脅威ハッシュの検索後に返されるレスポンス。
何も見つからなかった場合、サーバーは NOT_FOUND ステータス(HTTP ステータス コード 404)を返すのではなく、fullHashes
フィールドを空にして OK ステータス(HTTP ステータス コード 200)を返します。
V5 の新機能: FullHash
と FullHashDetail
は分離されています。ハッシュが複数の脅威(MALWARE と SOCIAL_ENGINEERING の両方など)を持つサイトを表す場合、V4 のようにフルハッシュを 2 回送信する必要はありません。さらに、キャッシュ期間を単一の cacheDuration
フィールドに簡素化しました。
成功した場合、レスポンスの本文には次の構造のデータが含まれます。
JSON 表現 |
---|
{
"fullHashes": [
{
object ( |
フィールド | |
---|---|
fullHashes[] |
順序なしリスト。見つかった完全なハッシュの順序なしリスト。 |
cacheDuration |
クライアントサイドのキャッシュ期間。クライアントは、この継続時間を現在の時刻に追加して有効期限を決定しなければなりません。その後、レスポンスで返される完全なハッシュの数に関係なく、リクエストでクライアントからクエリされたすべてのハッシュ接頭辞に有効期限が適用されます。サーバーが特定のハッシュ接頭辞に対して完全なハッシュを返さない場合でも、この事実はクライアントによってキャッシュされなければなりません。 フィールド 重要: クライアントは、サーバーがすべてのレスポンスで同じキャッシュ期間を返すことを想定してはなりません。サーバーは、状況に応じて異なるレスポンスに異なるキャッシュ期間を選択しても構いません。
|
FullHash
1 つ以上の一致で識別された完全なハッシュ。
JSON 表現 |
---|
{
"fullHash": string,
"fullHashDetails": [
{
object ( |
フィールド | |
---|---|
fullHash |
一致するフルハッシュ。これは SHA256 ハッシュです。長さは正確に 32 バイトになります。 Base64 でエンコードされた文字列。 |
fullHashDetails[] |
順序なしリスト。このフルハッシュに関連する詳細を識別する繰り返しフィールド。 |
FullHashDetail
一致するフルハッシュの詳細。
上位互換性に関する重要な注意事項: 新しい脅威の種類と脅威の属性はサーバーによって随時追加される可能性があります。これらの追加はマイナーなバージョン変更とみなされます。Google のポリシーでは API でマイナー バージョン番号を公開しない(バージョニング ポリシーについては https://cloud.google.com/apis/design/versioning を参照)ため、クライアントはクライアントによって無効とみなされる ThreatType
列挙値または ThreatAttribute
列挙値を含む FullHashDetail
メッセージを受信できるようにしておく必要があります。したがって、ThreatType
と ThreatAttribute
のすべての列挙値の有効性をチェックするのは、クライアントの責任です。いずれかの値が無効とみなされる場合、クライアントは FullHashDetail
メッセージ全体を無視しなければなりません。
JSON 表現 |
---|
{ "threatType": enum ( |
フィールド | |
---|---|
threatType |
脅威の種類。このフィールドが空になることはありません。 |
attributes[] |
順序なしリスト。それらの完全なハッシュに関する追加属性。空の場合もあります。 |
ThreatAttribute
脅威の属性。これらの属性は、特定の脅威に追加の意味を与える場合がありますが、脅威の種類には影響しません。たとえば、ある属性で低い信頼度を指定し、別の属性でより高い信頼度を指定する場合があります。今後、さらに多くの属性が追加される可能性があります。
列挙型 | |
---|---|
THREAT_ATTRIBUTE_UNSPECIFIED |
不明な属性です。これがサーバーから返された場合、クライアントはそれを含む FullHashDetail を完全に無視します。 |
CANARY |
適用に ThreatType を使用しないことを示します。 |
FRAME_ONLY |
ThreatType をフレームへの適用にのみ使用することを示します。 |