API Navigazione sicura Lookup (v4)

Panoramica

L'API Lookup consente alle applicazioni client di inviare richieste ai server di Navigazione sicura per verificare se gli URL sono inclusi in uno qualsiasi degli elenchi di Navigazione sicura. Se viene trovato un URL in uno o più elenchi, vengono restituite le informazioni corrispondenti.

Verifica degli URL

Per verificare se un URL è presente in un elenco di Navigazione sicura, invia una richiesta HTTP POST al metodo threatMatches.find:

  • La richiesta HTTP POST può includere fino a 500 URL. Gli URL devono essere validi (vedi RFC 2396), ma non è necessario che siano canonicalizzati o codificati.
  • La risposta HTTP POST restituisce gli URL corrispondenti insieme alla durata della cache.

Esempio: ThreatMatches.find

Richiesta POST HTTP

Nell'esempio che segue, due elenchi di Navigazione sicura e tre URL vengono inviati al server per determinare se esiste una corrispondenza.

Intestazione della richiesta

L'intestazione della richiesta include l'URL della richiesta e il tipo di contenuti. Ricordati di sostituire la chiave API con API_KEY nell'URL.

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

Corpo della richiesta

Il corpo della richiesta include le informazioni sul client (ID e versione) e le informazioni sulla minaccia (i nomi degli elenchi e gli URL). Per ulteriori dettagli, consulta il corpo della richiestathreatMatches.find e le spiegazioni che seguono l'esempio di codice.

  {
    "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/"}
      ]
    }
  }
Dati cliente

I campi clientID e clientVersion devono identificare in modo univoco un'implementazione client, non un singolo utente. (le informazioni sul client vengono utilizzate per il logging e la contabilità lato server. Puoi scegliere qualsiasi nome per l'ID client, ma ti suggeriamo di scegliere un nome che rappresenti l'identità reale del client, ad esempio il nome dell'azienda, presentato come un'unica parola, in lettere minuscole.

Elenchi di Navigazione sicura

I campi threatType, platformType e threatEntryType vengono combinati per identificare gli elenchi di Navigazione sicura (nome). Nell'esempio sono identificati due elenchi: MALWARE/WINDOWS/URL e SOCIAL_ENGINEERING/WINDOWS/URL. Prima di inviare una richiesta, assicurati che le combinazioni di tipi specificate siano valide (consulta la sezione Elenchi di Navigazione sicura).

URL minaccia

Nell'esempio, l'array threatEntries contiene tre URL (urltocheck1.org, urltocheck2.org e urltocheck3.org) che verranno verificati rispetto ai due elenchi di Navigazione sicura.

Nota: l'API Lookup e il metodo threatMatches dovrebbero utilizzare sempre il campo URL, mai il campo hash (vedi ThreatEntry).

Risposta POST HTTP

Nell'esempio seguente, la risposta restituisce una corrispondenza; due dei tre URL specificati nella richiesta vengono trovati in uno dei due elenchi di Navigazione sicura specificati nella richiesta.

Intestazione della risposta

L'intestazione della risposta include il codice di stato HTTP e il tipo di contenuto.

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

Corpo della risposta

Il corpo della risposta include le informazioni sulla corrispondenza (i nomi degli elenchi e gli URL trovati in questi elenchi, i metadati, se disponibili e le durate della cache). Per ulteriori dettagli, consulta il corpo della rispostathreatMatches.find e le spiegazioni che seguono l'esempio di codice.

Nota: se non ci sono corrispondenze (ovvero, se nessuno degli URL specificati nella richiesta viene trovato in uno degli elenchi specificati in una richiesta), la risposta HTTP POST restituisce semplicemente un oggetto vuoto nel corpo della risposta.

{
  "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"
  }]
}
Corrisponde a

L'oggetto matches elenca i nomi degli elenchi di Navigazione sicura e gli URL, in caso di corrispondenza. Nell'esempio, sono stati trovati due URL (urltocheck1.org e urltocheck2.org) in uno degli elenchi di Navigazione sicura (MALWARE/WINDOWS/URL), quindi vengono restituite le informazioni corrispondenti. Il terzo URL (urltocheck3.org) non è stato trovato in nessuno degli elenchi, pertanto non vengono restituite informazioni per questo URL.

Metadati

Il campo threatEntryMetadata è facoltativo e fornisce ulteriori informazioni sulla corrispondenza delle minacce. Al momento, i metadati sono disponibili per l'elenco di Navigazione sicura MALWARE/WINDOWS/URL (consulta la sezione Metadati).

Durate della cache

Il campo cacheDuration indica per quanto tempo l'URL deve essere considerato non sicuro (consulta la sezione Memorizzazione nella cache).