Method: hashes.search

Recherchez les hachages complets correspondant aux préfixes spécifiés.

Il s'agit d'une méthode personnalisée telle que définie sur https://google.aip.dev/136 (la méthode personnalisée fait référence à cette méthode ayant un nom personnalisé dans la nomenclature générale de développement d'API de Google. Il ne s'agit pas d'utiliser une méthode HTTP personnalisée).

Requête HTTP

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

L'URL utilise la syntaxe de transcodage gRPC.

Paramètres de requête

Paramètres
hashPrefixes[]

string (bytes format)

Obligatoire. Préfixes de hachage à rechercher. Les clients NE DOIVENT PAS envoyer plus de 1 000 préfixes de hachage. Toutefois, conformément à la procédure de traitement des URL, les clients NE DOIVENT PAS envoyer plus de 30 préfixes de hachage.

Actuellement, chaque préfixe de hachage doit comporter exactement quatre octets. Cette exigence pourra être assouplie à l'avenir.

Chaîne encodée en base64.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Réponse renvoyée après la recherche de hachages de menaces.

Si rien n'est trouvé, le serveur renvoie un état OK (code d'état HTTP 200) avec le champ fullHashes vide, au lieu de renvoyer un état NOT_FOUND (code d'état HTTP 404).

Nouveautés de la version 5: une séparation est effectuée entre FullHash et FullHashDetail. Lorsqu'un hachage représente un site présentant plusieurs menaces (par exemple, MALWARE et SOCIAL_ENGINEERING), il n'est pas nécessaire d'envoyer le hachage complet deux fois, comme dans la version 4. De plus, la durée du cache a été simplifiée en un seul champ cacheDuration.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Représentation JSON
{
  "fullHashes": [
    {
      object (FullHash)
    }
  ],
  "cacheDuration": string
}
Champs
fullHashes[]

object (FullHash)

Liste non ordonnée. Liste non ordonnée des hachages complets trouvés.

cacheDuration

string (Duration format)

Durée du cache côté client. Le client DOIT ajouter cette durée à l'heure actuelle pour déterminer l'heure d'expiration. La date d'expiration s'applique ensuite à chaque préfixe de hachage interrogé par le client dans la requête, quel que soit le nombre de hachages complets renvoyés dans la réponse. Même si le serveur ne renvoie aucun hachage complet pour un préfixe de hachage particulier, ce fait DOIT également être mis en cache par le client.

Si et seulement si le champ fullHashes est vide, le client PEUT augmenter cacheDuration pour déterminer une nouvelle date d'expiration ultérieure à celle spécifiée par le serveur. Dans tous les cas, la durée de cache augmentée ne doit pas dépasser 24 heures.

Important: Le client NE DOIT PAS supposer que le serveur renvoie la même durée de cache pour toutes les réponses. Le serveur PEUT choisir des durées de cache différentes pour différentes réponses, selon la situation.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

FullHash

Le hachage complet identifié par une ou plusieurs correspondances.

Représentation JSON
{
  "fullHash": string,
  "fullHashDetails": [
    {
      object (FullHashDetail)
    }
  ]
}
Champs
fullHash

string (bytes format)

Le hachage complet correspondant. Il s'agit du hachage SHA256. La longueur sera exactement de 32 octets.

Chaîne encodée en base64.

fullHashDetails[]

object (FullHashDetail)

Liste non ordonnée. Champ répété identifiant les détails pertinents pour ce hachage complet.

FullHashDetail

Informations sur un hachage complet correspondant.

Remarque importante concernant la rétrocompatibilité: le serveur peut ajouter à tout moment de nouveaux types et attributs de menaces. Ces ajouts sont considérés comme des modifications de version mineures. Conformément aux règles de Google, les numéros de version mineure ne sont pas exposés dans les API (consultez https://cloud.google.com/apis/design/versioning pour en savoir plus sur les règles de gestion des versions). Par conséquent, les clients DOIVENT être prêts à recevoir des messages FullHashDetail contenant des valeurs d'énumération ThreatType ou ThreatAttribute considérées comme non valides par le client. Il appartient donc au client de vérifier la validité de toutes les valeurs d'énumération ThreatType et ThreatAttribute. Si une valeur est considérée comme non valide, le client DOIT ignorer l'intégralité du message FullHashDetail.

Représentation JSON
{
  "threatType": enum (ThreatType),
  "attributes": [
    enum (ThreatAttribute)
  ]
}
Champs
threatType

enum (ThreatType)

Type de menace. Ce champ ne sera jamais vide.

attributes[]

enum (ThreatAttribute)

Liste non ordonnée. Attributs supplémentaires concernant ces hachages complets. Ce champ peut être vide.

ThreatAttribute

Attributs des menaces. Ces attributs peuvent conférer une signification supplémentaire à une menace particulière, mais n'affectent pas le type de menace. Par exemple, un attribut peut spécifier un niveau de confiance inférieur, tandis qu'un autre peut spécifier un niveau de confiance plus élevé. D'autres attributs pourront être ajoutés à l'avenir.

Enums
THREAT_ATTRIBUTE_UNSPECIFIED Attribut inconnu. Si le serveur renvoie cette valeur, le client doit ignorer complètement l'FullHashDetail englobant.
CANARY Indique que le type de menace ne doit pas être utilisé pour l'application.
FRAME_ONLY Indique que le type de menace ne doit être utilisé que pour l'application des règles sur les cadres.