Method: hashes.search

Cerca hash completi che corrispondono ai prefissi specificati.

Si tratta di un metodo personalizzato come definito da https://google.aip.dev/136 (il metodo personalizzato si riferisce al fatto che questo metodo abbia un nome personalizzato all'interno della nomenclatura generale di sviluppo delle API di Google e non all'utilizzo di un metodo HTTP personalizzato).

Richiesta HTTP

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

L'URL utilizza la sintassi di transcodifica gRPC.

Parametri di ricerca

Parametri
hashPrefixes[]

string (bytes format)

obbligatorio. I prefissi hash da cercare. I client NON DEVONO inviare più di 1000 prefissi hash. Tuttavia, seguendo la procedura di elaborazione degli URL, i client NON DEVONO dover inviare più di 30 prefissi hash.

Attualmente ogni prefisso hash deve avere una lunghezza esatta di 4 byte. Questo POTREBBE essere rilassato in futuro.

Una stringa con codifica Base64.

Corpo della richiesta

Il corpo della richiesta deve essere vuoto.

Corpo della risposta

La risposta è stata restituita dopo la ricerca degli hash delle minacce.

Se non viene trovato nulla, il server restituirà uno stato OK (codice di stato HTTP 200) con il campo fullHashes vuoto, anziché uno stato NOT_FOUND (codice di stato HTTP 404).

Novità di V5: esiste una separazione tra FullHash e FullHashDetail. Nel caso in cui un hash rappresenta un sito che presenta più minacce (ad es. sia MALWARE che SOCIAL_EngineERING), non è necessario inviare l'hash completo il doppio rispetto a V4. Inoltre, la durata della cache è stata semplificata in un unico campo cacheDuration.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "fullHashes": [
    {
      object (FullHash)
    }
  ],
  "cacheDuration": string
}
Campi
fullHashes[]

object (FullHash)

Elenco non ordinato. L'elenco non ordinato di hash completi trovati.

cacheDuration

string (Duration format)

La durata della cache lato client. Il client DEVE aggiungere questa durata all'ora corrente per determinare la scadenza. La data e l'ora di scadenza vengono quindi applicate a ogni prefisso hash interrogato dal client nella richiesta, indipendentemente dal numero di hash completi restituiti nella risposta. Anche se il server non restituisce un hash completo per un determinato prefisso hash, DEVE anche essere memorizzato nella cache dal client.

Importante: il client NON DEVE presumere che il server restituisca la stessa durata della cache per tutte le risposte. Il server POTREBBE scegliere durate della cache diverse per risposte diverse a seconda della situazione.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

FullHash

L'hash completo identificato con una o più corrispondenze.

Rappresentazione JSON
{
  "fullHash": string,
  "fullHashDetails": [
    {
      object (FullHashDetail)
    }
  ]
}
Campi
fullHash

string (bytes format)

L'hash completo corrispondente. Questo è l'hash SHA256. La lunghezza sarà esattamente di 32 byte.

Una stringa con codifica Base64.

fullHashDetails[]

object (FullHashDetail)

Elenco non ordinato. Un campo ripetuto che identifica i dettagli pertinenti a questo hash completo.

FullHashDetail

Dettagli relativi a un hash completo corrispondente.

Una nota importante sulla compatibilità in avanti: il server può aggiungere nuovi tipi di minacce e attributi di minacce in qualsiasi momento; tali aggiunte sono considerate modifiche di versione minori. Le norme di Google non prevedono l'esposizione di numeri di versione secondari nelle API (per le norme relative al controllo delle versioni, consulta la pagina https://cloud.google.com/apis/design/versioning), quindi i client DEVONO essere pronti a ricevere messaggi FullHashDetail contenenti valori enum ThreatType o valori enum ThreatAttribute considerati non validi dal client. È quindi responsabilità del client verificare la validità di tutti i valori di enumerazione ThreatType e ThreatAttribute; se uno o più valori vengono considerati non validi, il client DEVE ignorare l'intero messaggio FullHashDetail.

Rappresentazione JSON
{
  "threatType": enum (ThreatType),
  "attributes": [
    enum (ThreatAttribute)
  ]
}
Campi
threatType

enum (ThreatType)

Il tipo di minaccia. Questo campo non sarà mai vuoto.

attributes[]

enum (ThreatAttribute)

Elenco non ordinato. Attributi aggiuntivi relativi a questi hash completi. Questo campo potrebbe essere vuoto.

ThreatType

Tipi di minacce.

Enum
THREAT_TYPE_UNSPECIFIED Tipo di minaccia sconosciuto. Se il server restituisce questo valore, il client ignora del tutto il contenuto FullHashDetail che le include.
MALWARE

Tipo di minaccia malware. I malware sono software o applicazioni per dispositivi mobili pensati appositamente per danneggiare un computer, un dispositivo mobile, il software in esecuzione o gli utenti. I comportamenti dei malware includono l'installazione di software senza il consenso dell'utente e l'installazione di software dannoso, come i virus.

Ulteriori informazioni sono disponibili qui.

SOCIAL_ENGINEERING

Tipo di minaccia di ingegneria sociale. Le pagine di ingegneria sociale sostengono impropriamente di agire per conto di una terza parte con l'intento di confondere gli spettatori e spingerli a eseguire un'azione con la quale questi si fidano solo di un vero agente della terza parte. Il phishing è un tipo di ingegneria sociale che induce con l'inganno lo spettatore a eseguire l'azione specifica di fornire informazioni, come le credenziali di accesso.

Ulteriori informazioni sono disponibili qui.

UNWANTED_SOFTWARE Tipo di minaccia software indesiderato. Per software indesiderato si intende un software che non rispetta i Principi sul software di Google, ma non è un malware.
POTENTIALLY_HARMFUL_APPLICATION Tipo di minaccia per le applicazioni potenzialmente dannosa come utilizzato da Google Play Protect per il Play Store.

ThreatAttribute

Attributi delle minacce. Questi attributi possono conferire un significato aggiuntivo a una particolare minaccia, ma non influiscono sul tipo di minaccia. Ad esempio, un attributo potrebbe specificare un livello di confidenza minore, mentre un attributo diverso potrebbe specificare un'affidabilità più alta. In futuro potrebbero essere aggiunti altri attributi.

Enum
THREAT_ATTRIBUTE_UNSPECIFIED Attributo sconosciuto. Se il server restituisce questo valore, il client ignora del tutto il contenuto FullHashDetail che le include.
CANARY Indica che non deve essere utilizzato il valore ThreatType per l'applicazione forzata.
FRAME_ONLY Indica che threatType deve essere utilizzato solo per l'applicazione forzata sui frame.