Index
SafeBrowsing
(interface)BatchGetHashListsRequest
(message)BatchGetHashListsResponse
(message)FullHash
(message)FullHash.FullHashDetail
(message)GetHashListRequest
(message)HashList
(message)HashListMetadata
(message)HashListMetadata.HashLength
(enum)LikelySafeType
(enum)ListHashListsRequest
(message)ListHashListsResponse
(message)RiceDeltaEncoded128Bit
(message)RiceDeltaEncoded256Bit
(message)RiceDeltaEncoded32Bit
(message)RiceDeltaEncoded64Bit
(message)SearchHashesRequest
(message)SearchHashesResponse
(message)SizeConstraints
(message)ThreatAttribute
(enum)ThreatType
(enum)
SafeBrowsing
Les API Safe Browsing permettent aux clients de comparer des ressources Web (généralement des URL) aux listes de ressources Web non sécurisées constamment mises à jour par Google.
BatchGetHashLists |
---|
Obtenez plusieurs listes de hachage à la fois. Il est très courant qu'un client ait besoin d'obtenir plusieurs listes de hachage. Il est préférable d'utiliser cette méthode plutôt que d'utiliser plusieurs fois la méthode Get standard. Il s'agit d'une méthode de récupération par lot standard telle que définie par https://google.aip.dev/231. La méthode HTTP est également GET. |
GetHashList |
---|
Obtenez le dernier contenu d'une liste de hachage. Une liste de hachage peut être une liste de menaces ou une liste de non-menaces, comme le cache global. Il s'agit d'une méthode GET standard telle que définie par https://google.aip.dev/131. La méthode HTTP est également GET. |
ListHashLists |
---|
Liste des listes de hachage. Dans l'API V5, Google ne supprimera jamais une liste de hachage qui a déjà été renvoyée par cette méthode. Les clients peuvent ainsi ignorer cette méthode et simplement coder en dur toutes les listes de hachage dont ils ont besoin. Il s'agit d'une méthode de liste standard telle que définie par https://google.aip.dev/132. La méthode HTTP est GET. |
SearchHashes |
---|
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). |
BatchGetHashListsRequest
Requête permettant d'obtenir plusieurs listes de hachage en même temps.
Champs | |
---|---|
names[] |
Obligatoire. Noms des listes de hachage spécifiques. Il peut s'agir d'une liste de menaces ou du cache global. Les noms NE DOIVENT PAS contenir de doublons. Sinon, le client recevra une erreur. |
version[] |
Versions de la liste de hachage que le client possède déjà. Si le client récupère les listes de hachage pour la première fois, le champ doit rester vide. Sinon, le client doit fournir les versions précédemment reçues du serveur. Le client NE DOIT PAS manipuler ces octets. Le client n'a pas besoin d'envoyer les versions dans le même ordre que les noms de liste correspondants. Le client peut envoyer moins ou plus de versions dans une requête que de noms. Toutefois, le client NE DOIT PAS envoyer plusieurs versions correspondant au même nom. Sinon, il recevra une erreur. Remarque historique: dans la version 4 de l'API, cette valeur était appelée |
desired_hash_length |
Longueur du préfixe de hachage souhaité des hachages renvoyés en octets. Le serveur renvoie ensuite tous les préfixes de hachage de cette longueur spécifiée. Les différentes listes de hachage ont des exigences différentes concernant les valeurs acceptables du champ Pour |
size_constraints |
Contraintes de taille pour chaque liste. Si elle est omise, aucune contrainte ne s'applique. Notez que les tailles indiquées ici sont par liste et non agrégées pour toutes les listes. |
BatchGetHashListsResponse
Réponse contenant plusieurs listes de hachage.
Champs | |
---|---|
hash_lists[] |
Les listes de hachage dans l'ordre indiqué dans la requête. |
FullHash
Le hachage complet identifié par une ou plusieurs correspondances.
Champs | |
---|---|
full_hash |
Le hachage complet correspondant. Il s'agit du hachage SHA256. La longueur sera exactement de 32 octets. |
full_hash_details[] |
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
.
Champs | |
---|---|
threat_type |
Type de menace. Ce champ ne sera jamais vide. |
attributes[] |
Liste non ordonnée. Attributs supplémentaires concernant ces hachages complets. Ce champ peut être vide. |
GetHashListRequest
Requête visant à obtenir une liste de hachage, qui peut être une liste de menaces ou une liste de non-menaces, comme le cache global.
Nouveautés de la version 5: ce qui était auparavant appelé states
dans la version 4 est renommé version
pour plus de clarté. Les listes sont désormais nommées, et les types de plate-forme et de menaces sont supprimés. Il est désormais possible que plusieurs listes comportent le même type de menace ou qu'une seule liste concerne plusieurs types de menaces. Les clients peuvent désormais spécifier la longueur de hachage souhaitée. Cela fait partie de la réponse aux préfixes de hachage à longueur variable de la version 4, qui ont causé des problèmes dans de nombreuses implémentations client: tous les hachages d'une liste ont désormais une seule longueur, ce qui permet des implémentations client beaucoup plus efficaces. Les contraintes ont été simplifiées et le type de compression a été supprimé (la compression est toujours appliquée).
Champs | |
---|---|
name |
Obligatoire. Nom de cette liste de hachage spécifique. Il peut s'agir d'une liste de menaces ou du cache global. |
version |
Version de la liste de hachage dont le client dispose déjà. Si le client récupère la liste de hachage pour la première fois, ce champ DOIT être laissé vide. Dans le cas contraire, le client DOIT fournir la version précédemment reçue du serveur. Le client NE DOIT PAS manipuler ces octets. Nouveautés de la version 5: dans la version 4 de l'API, cette valeur était appelée |
desired_hash_length |
Longueur du préfixe de hachage souhaité des hachages renvoyés en octets. Le serveur renvoie ensuite tous les préfixes de hachage de cette longueur spécifiée. Les différentes listes de hachage ont des exigences différentes concernant les valeurs acceptables du champ |
size_constraints |
Contraintes de taille de la liste. Si elle est omise, aucune contrainte ne s'applique. Nous vous recommandons d'appliquer des contraintes sur tous les appareils dont la puissance de traitement, la bande passante ou l'espace de stockage sont limités. |
HashList
Liste de hachages identifiés par leur nom.
Champs | |
---|---|
name |
Nom de la liste de hachage. Notez que le cache global n'est également qu'une liste de hachage et peut être référencé ici. |
version |
Version de la liste de hachage. Le client NE DOIT PAS manipuler ces octets. |
partial_update |
Si la valeur est "true", il s'agit d'une différence partielle contenant des ajouts et des suppressions en fonction de ce que le client possède déjà. Si la valeur est "false", il s'agit de la liste complète des hachages. Si la valeur est "false", le client DOIT supprimer toute version stockée localement pour cette liste de hachage. Cela signifie que la version détenue par le client est très obsolète ou que les données client sont corrompues. Le champ Si la valeur est "true", le client DOIT appliquer une mise à jour incrémentielle en appliquant des suppressions, puis des ajouts. |
compressed_removals |
Version encodée en Rice-delta des index de suppression. Étant donné que chaque liste de hachage contient moins de 2^32 entrées, les indices sont traités comme des entiers 32 bits et encodés. |
minimum_wait_duration |
Les clients doivent attendre au moins ce délai pour obtenir à nouveau la liste de hachage. Si elle est omise ou égale à zéro, les clients DOIVENT effectuer une récupération immédiate, car cela indique que le serveur dispose d'une mise à jour supplémentaire à envoyer au client, mais qu'il ne peut pas le faire en raison des contraintes spécifiées par le client. |
sha256_checksum |
Liste triée de tous les hachages, hachés à nouveau avec SHA256. Il s'agit de la somme de contrôle de la liste triée de tous les hachages présents dans la base de données après l'application de la mise à jour fournie. Si aucune mise à jour n'a été fournie, le serveur omet ce champ pour indiquer au client qu'il doit utiliser la somme de contrôle existante. |
metadata |
Métadonnées sur la liste de hachage. Ce champ n'est pas renseigné par la méthode |
Champ d'union compressed_additions . Version encodée Rice-delta des additions. La longueur des préfixes de hachage des ajouts est uniforme pour tous les ajouts de la liste. Il s'agit soit du desired_hash_length envoyé par le client, soit d'une valeur choisie par le serveur si le client a omis ce champ. La compressed_additions ne peut être qu'un des éléments suivants : |
|
additions_four_bytes |
Les ajouts de 4 octets. |
additions_eight_bytes |
Les ajouts de 8 octets. |
additions_sixteen_bytes |
Les ajouts de 16 octets. |
additions_thirty_two_bytes |
Les ajouts de 32 octets. |
HashListMetadata
Métadonnées d'une liste de hachage spécifique.
Champs | |
---|---|
threat_types[] |
Liste non ordonnée. Si la valeur n'est pas vide, cela indique que la liste de hachage est un type de liste de menaces et énumère le type de menaces associées aux hachages ou aux préfixes de hachage de cette liste. Peut être vide si l'entrée ne représente pas de menace, c'est-à-dire si elle représente un type probablement sûr. |
likely_safe_types[] |
Liste non ordonnée. Si cette valeur n'est pas vide, cela signifie que la liste de hachage représente une liste de hachages probablement sécurisés, et énumère les raisons pour lesquelles ils sont considérés comme tels. Ce champ s'exclut mutuellement avec le champ "threat_types". |
description |
Description lisible de cette liste. rédigé en anglais ; |
supported_hash_lengths[] |
Longueurs de hachage compatibles avec cette liste de hachage. Chaque liste de hachage doit prendre en charge au moins une longueur. Ce champ ne sera donc pas vide. |
hash_length |
Longueur de hachage compatible avec cette liste de hachage. Chaque liste de hachage accepte exactement une seule longueur. Si une longueur de hachage différente est introduite pour le même ensemble de types de menaces ou de types sûrs, elle sera présentée sous forme de liste distincte avec un nom distinct et une longueur de hachage respective définie. |
HashLength
Longueur des hachages dans une liste de hachages.
Enums | |
---|---|
HASH_LENGTH_UNSPECIFIED |
Longueur non spécifiée. Le serveur ne renverra pas cette valeur dans les réponses au client (dans le champ supported_hash_lengths ), mais le client est autorisé à l'envoyer au serveur (dans le champ desired_hash_length ), auquel cas le serveur choisira automatiquement une valeur. Les clients DOIVENT laisser le serveur choisir une valeur. |
FOUR_BYTES |
Chaque hachage est un préfixe de quatre octets. |
EIGHT_BYTES |
Chaque hachage est un préfixe de huit octets. |
SIXTEEN_BYTES |
Chaque hachage est un préfixe de 16 octets. |
THIRTY_TWO_BYTES |
Chaque hachage est un hachage complet de 32 octets. |
LikelySafeType
Types de sites probablement sûrs
Notez que SearchHashesResponse
ne contient pas intentionnellement LikelySafeType
.
Enums | |
---|---|
LIKELY_SAFE_TYPE_UNSPECIFIED |
Inconnu. |
GENERAL_BROWSING |
Ce site est probablement suffisamment sécurisé pour la navigation générale. On l'appelle également "cache global". |
CSD |
Ce site est probablement suffisamment sécurisé pour qu'il n'y ait pas besoin d'exécuter de modèles de détection côté client ni de vérifications de la protection par mot de passe. |
DOWNLOAD |
Ce site est probablement suffisamment sécurisé pour que les téléchargements ne nécessitent pas d'être vérifiés. |
ListHashListsRequest
Requête pour lister les listes de hachage disponibles.
Champs | |
---|---|
page_size |
Nombre maximal de listes de hachage à renvoyer. Le service peut renvoyer un nombre inférieur à cette valeur. Si aucune valeur n'est spécifiée, le serveur choisit une taille de page, qui peut être supérieure au nombre de listes de hachage afin que la pagination ne soit pas nécessaire. |
page_token |
Jeton de page reçu d'un appel |
ListHashListsResponse
Réponse contenant des métadonnées sur les listes de hachage.
Champs | |
---|---|
hash_lists[] |
Les listes de hachage sont affichées dans un ordre arbitraire. Seules les métadonnées des listes de hachage seront incluses, et non le contenu. |
next_page_token |
Jeton pouvant être envoyé en tant que |
RiceDeltaEncoded128Bit
Comme RiceDeltaEncoded32Bit
, sauf qu'il encode des nombres de 128 bits.
Champs | |
---|---|
first_value_hi |
64 bits supérieurs de la première entrée des données encodées (hachages). Si le champ est vide, les 64 bits supérieurs sont tous nuls. |
first_value_lo |
64 bits inférieurs de la première entrée des données encodées (hachages). Si le champ est vide, les 64 bits inférieurs sont tous nuls. |
rice_parameter |
Paramètre Golomb-Rice. Ce paramètre est garanti entre 99 et 126 inclus. |
entries_count |
Nombre d'entrées encodées en delta dans les données encodées. Si un seul entier a été encodé, cette valeur sera nulle et la valeur unique sera stockée dans |
encoded_data |
Deltas encodés à l'aide de l'encodeur Golomb-Rice. |
RiceDeltaEncoded256Bit
Identique à RiceDeltaEncoded32Bit
, sauf qu'il encode des nombres de 256 bits.
Champs | |
---|---|
first_value_first_part |
Les 64 premiers bits de la première entrée des données encodées (hachages). Si le champ est vide, les 64 premiers bits sont tous nuls. |
first_value_second_part |
Bits 65 à 128 de la première entrée des données encodées (hachages). Si le champ est vide, les bits 65 à 128 sont tous nuls. |
first_value_third_part |
Bits 129 à 192 de la première entrée des données encodées (hachages). Si le champ est vide, les bits 129 à 192 sont tous nuls. |
first_value_fourth_part |
Les 64 derniers bits de la première entrée des données encodées (hachages). Si le champ est vide, les 64 derniers bits sont tous à zéro. |
rice_parameter |
Paramètre Golomb-Rice. Ce paramètre est garanti entre 227 et 254, inclus. |
entries_count |
Nombre d'entrées encodées en delta dans les données encodées. Si un seul entier a été encodé, cette valeur sera nulle et la valeur unique sera stockée dans |
encoded_data |
Deltas encodés à l'aide de l'encodeur Golomb-Rice. |
RiceDeltaEncoded32Bit
Données encodées Rice-Golomb. Utilisé pour les hachages ou les indices de suppression. Chaque hachage ou indice a la même longueur, qui est exactement de 32 bits.
En règle générale, si nous trions toutes les entrées par ordre alphabétique, nous constaterons que les bits de plus haut niveau ne changent pas aussi fréquemment que les bits de plus bas niveau. Cela signifie que si nous prenons également la différence adjacente entre les entrées, les bits d'ordre supérieur ont de fortes chances d'être nuls. Cette méthode exploite cette forte probabilité de zéro en choisissant essentiellement un certain nombre de bits. Tous les bits plus significatifs que ce nombre sont susceptibles d'être nuls. Nous utilisons donc l'encodage unaire. Consultez le champ rice_parameter
.
Remarque historique: L'encodage Rice-delta a été utilisé pour la première fois dans la version 4 de cette API. Dans la version 5, deux améliorations importantes ont été apportées: d'une part, l'encodage Rice-delta est désormais disponible avec des préfixes de hachage de plus de 4 octets ; d'autre part, les données encodées sont désormais traitées en big-endian afin d'éviter une étape de tri coûteuse.
Champs | |
---|---|
first_value |
Première entrée des données encodées (hachages ou indices), ou, si un seul préfixe ou indice de hachage a été encodé, valeur de cette entrée. Si le champ est vide, la valeur est nulle. |
rice_parameter |
Paramètre Golomb-Rice. Ce paramètre est toujours compris entre 3 et 30, inclus. |
entries_count |
Nombre d'entrées encodées en delta dans les données encodées. Si un seul entier a été encodé, cette valeur sera nulle et la valeur unique sera stockée dans |
encoded_data |
Deltas encodés à l'aide de l'encodeur Golomb-Rice. |
RiceDeltaEncoded64Bit
Identique à RiceDeltaEncoded32Bit
, mais encode des nombres de 64 bits.
Champs | |
---|---|
first_value |
Première entrée des données encodées (hachages) ou, si un seul préfixe de hachage a été encodé, valeur de cette entrée. Si le champ est vide, la valeur est nulle. |
rice_parameter |
Paramètre Golomb-Rice. Ce paramètre est garanti entre 35 et 62 ans, inclus. |
entries_count |
Nombre d'entrées encodées en delta dans les données encodées. Si un seul entier a été encodé, cette valeur sera nulle et la valeur unique sera stockée dans |
encoded_data |
Deltas encodés à l'aide de l'encodeur Golomb-Rice. |
SearchHashesRequest
Requête envoyée par le client pour rechercher des préfixes de hachage spécifiques.
Cette fonctionnalité ne recherche que les listes de menaces et ne recherche pas les listes autres que les listes de menaces, comme le cache global.
Nouveautés de la version 5: les clients n'ont pas besoin de spécifier un ClientInfo
ni les états des listes de hachage dans leur base de données locale. Cela permet de préserver votre confidentialité. De plus, les clients n'ont pas besoin d'indiquer les types de menaces qui les intéressent.
Champs | |
---|---|
hash_prefixes[] |
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. |
filter |
Facultatif. Si le client souhaite filtrer les résultats, par exemple pour ne récupérer que des types de menaces spécifiques, il peut le spécifier. Si elle est omise, toutes les menaces correspondantes sont renvoyées. Il est vivement recommandé de ne pas l'inclure pour bénéficier de la protection la plus complète possible de la navigation sécurisée. Le filtre est spécifié à l'aide du langage CEL (Common Expression Language) de Google, disponible à l'adresse https://github.com/google/cel-spec avec des exemples généraux. Voici quelques exemples spécifiques que vous pouvez utiliser: Le filtre Le filtre |
SearchHashesResponse
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 full_hashes
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 cache_duration
.
Champs | |
---|---|
full_hashes[] |
Liste non ordonnée. Liste non ordonnée des hachages complets trouvés. |
cache_duration |
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 Important: Le client NE DOIT PAS supposer que le serveur renverra 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. |
SizeConstraints
Contraintes concernant les tailles des listes de hachage.
Champs | |
---|---|
max_update_entries |
Taille maximale en nombre d'entrées. La mise à jour ne contiendra pas plus d'entrées que cette valeur, mais il est possible qu'elle en contienne moins. Cette valeur doit être d'au moins 1 024. Si elle est omise ou définie sur zéro, aucune limite de taille de mise à jour n'est définie. |
max_database_entries |
Définit le nombre maximal d'entrées que le client souhaite avoir dans la base de données locale pour la liste. (Le serveur PEUT entraîner le stockage de moins de ce nombre d'entrées par le client.) Si elle est omise ou définie sur zéro, aucune limite de taille de base de données n'est définie. |
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. |
ThreatType
Types de menaces.
Enums | |
---|---|
THREAT_TYPE_UNSPECIFIED |
Type de menace inconnu. Si le serveur renvoie cette valeur, le client doit ignorer complètement l'FullHashDetail englobant. |
MALWARE |
Type de menace de logiciel malveillant. Un logiciel malveillant est un logiciel ou une application mobile conçus spécialement pour endommager un ordinateur ou un appareil mobile, perturber le fonctionnement du programme qu'il ou elle exécute, ou nuire à ses utilisateurs. Les logiciels malveillants ont des comportements néfastes. Ils peuvent installer des logiciels sur l'ordinateur de l'internaute sans son consentement et installer des programmes dangereux tels que des virus. Pour en savoir plus, cliquez ici. |
SOCIAL_ENGINEERING |
Type de menace d'ingénierie sociale. Les pages d'ingénierie sociale prétendent faussement agir au nom d'un tiers dans le but de tromper les spectateurs et de les inciter à effectuer une action qu'ils ne feraient qu'auprès d'un véritable agent de ce tiers. L'hameçonnage est un type d'ingénierie sociale qui consiste à inciter l'utilisateur à effectuer une action spécifique, comme fournir des informations (identifiants de connexion, par exemple). Pour en savoir plus, cliquez ici. |
UNWANTED_SOFTWARE |
Type de menace de logiciel indésirable. Un logiciel indésirable est un logiciel qui ne respecte pas les Principes applicables aux logiciels de Google, mais qui n'est pas un logiciel malveillant. |
POTENTIALLY_HARMFUL_APPLICATION |
Type de menace d'application potentiellement dangereuse utilisé par Google Play Protect pour le Play Store. |