Safe Browsing Lookup API(v4)

概要

Lookup API を使用すると、クライアント アプリケーションからセーフ ブラウジングにリクエストを送信できます。 をチェックして、その URL がセーフ ブラウジング リストに含まれているかどうかを確認します。1 つまたは複数のコンテナで URL が見つかった場合 その他のリストの場合は、一致する情報が返されます。

URL の確認

URL がセーフ ブラウジング リストに含まれているかどうかを確認するには、HTTP POST リクエストを threatMatches.find メソッド:

  • HTTP POST リクエストには、最大 500 個の URL を含めることができます。有効な URL を入力してください (RFC 2396 を参照)。 正規化またはエンコードする必要はありません。
  • HTTP POST レスポンスは、一致する URL とキャッシュの期間を返します。

例: threatMatches.find

HTTP POST リクエスト

次の例では、2 つのセーフ ブラウジング リストと 3 つの URL がサーバーに送信され、 一致の有無を判断します。

リクエスト ヘッダー

リクエスト ヘッダーには、リクエスト URL とコンテンツ タイプが含まれます。以下を置き換えてください。 URL の API_KEY の API キー。

  POST https://safebrowsing.googleapis.com/v4/threatMatches:find?key=API_KEY HTTP/1.1
  Content-Type: application/json
  

リクエスト本文

リクエストの本文には、クライアント情報(ID とバージョン)と脅威情報が含まれる (リスト名と URL)。詳しくは、 threatMatches.find リクエスト本文 コードサンプルに続く説明を確認します

  {
    "client": {
      "clientId":      "yourcompanyname",
      "clientVersion": "1.5.2"
    },
    "threatInfo": {
      "threatTypes":      ["MALWARE", "SOCIAL_ENGINEERING"],
      "platformTypes":    ["WINDOWS"],
      "threatEntryTypes": ["URL"],
      "threatEntries": [
        {"url": "http://www.urltocheck1.org/"},
        {"url": "http://www.urltocheck2.org/"},
        {"url": "http://www.urltocheck3.com/"}
      ]
    }
  }
クライアント情報

clientID フィールドと clientVersion フィールドは、クライアント実装を一意に識別する必要があります。 できます。(クライアント情報は、サーバーサイドのロギングとアカウンティングに使用されます。以下を選択できます。 クライアント ID には任意の名前を付けることができますが、実際の ID を表す名前を選択することをおすすめします。 (会社名などのクライアント名を 1 語で表記してすべて小文字で表記)

セーフ ブラウジング リスト

threatTypeplatformTypethreatEntryType フィールド これらを組み合わせてセーフ ブラウジング リストを識別(名前)します。この例では、2 つのリストが特定されています。 MALWARE/WINDOWS/URL と SOCIAL_ENGINEERING/WINDOWS/URL の 2 種類があります。リクエストを送信する前に、Terraform が 指定した組み合わせが有効なものである(セーフ ブラウジング リストをご覧ください)。

脅威 URL

この例では、threatEntries 配列に 3 つの URL(urltocheck1.org、urltocheck2.org、 urltocheck3.org など)のリストが照合され、2 つのセーフ ブラウジング リストと照合されます。

注: Lookup API と threatMatches メソッドでは常に URL フィールドを使用する必要があります。 hash フィールドはありません(ThreatEntry をご覧ください)。

HTTP POST レスポンス

次の例では、レスポンスは一致を返します。URL で指定された 3 つの URL のうちの 2 つ 2 つのセーフ ブラウジング リストのいずれかで検出されます。

レスポンス ヘッダー

レスポンス ヘッダーには、HTTP ステータス コードが含まれます。 コンテンツタイプを指定します

HTTP/1.1 200 OK
Content-Type: application/json

レスポンスの本文

レスポンスの本文には一致情報(リスト名と、 メタデータ(利用可能な場合)、キャッシュ期間など)が含まれます。詳しくは、 threatMatches.find レスポンス本文 コードサンプルに続く説明を確認します

注: 一致する URL がない場合(つまり、指定された URL のいずれもない場合)は、 含まれる場合、HTTP POST レスポンス。 レスポンスの本文で空のオブジェクトを返します。

{
  "matches": [{
    "threatType":      "MALWARE",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "threat":          {"url": "http://www.urltocheck1.org/"},
    "threatEntryMetadata": {
      "entries": [{
        "key": "malware_threat_type",
        "value": "landing"
     }]
    },
    "cacheDuration": "300.000s"
  }, {
    "threatType":      "MALWARE",
    "platformType":    "WINDOWS",
    "threatEntryType": "URL",
    "threat":          {"url": "http://www.urltocheck2.org/"},
    "threatEntryMetadata": {
      "entries": [{
        "key":   "malware_threat_type",
        "value": "landing"
     }]
    },
    "cacheDuration": "300.000s"
  }]
}
一致

matches オブジェクトは、セーフ ブラウジング リストの名前と URL( あります。この例では、2 つの URL(urltocheck1.org と urltocheck2.org)が次のいずれかで見つかりました。 セーフ ブラウジング リスト(マルウェア/Windows/URL)と一致すると、一致する情報が返されます。3 番目の URL (urltocheck3.org)はいずれのリストでも見つからないため、この URL の情報は返されません。

メタデータ

threatEntryMetadata フィールドは省略可能であり、次の追加情報を提供します。 脅威との一致を検出できます。現在、マルウェア/Windows/URL のセーフ ブラウジング リストについてメタデータを利用できます。 (メタデータをご覧ください)。

キャッシュ期間

cacheDuration フィールドは、その URL が安全でないと判断される期間を示します。 (キャッシュ保存を参照)。