Nach vollständigen Hashes suchen, die den angegebenen Präfixen entsprechen.
Dies ist eine benutzerdefinierte Methode, wie in https://google.aip.dev/136 definiert. Die benutzerdefinierte Methode bezieht sich auf diese Methode, die einen benutzerdefinierten Namen innerhalb der allgemeinen API-Entwicklungsnommenklatur von Google hat. Sie bezieht sich nicht auf die Verwendung einer benutzerdefinierten HTTP-Methode.
HTTP-Anfrage
GET https://safebrowsing.googleapis.com/v5alpha1/hashes:search
Die URL verwendet die Syntax der gRPC-Transcodierung.
Abfrageparameter
Parameter | |
---|---|
hashPrefixes[] |
Erforderlich. Die Hash-Präfixe, die nachgeschlagen werden sollen. Clients DÜRFEN NICHT mehr als 1.000 Hash-Präfixe senden. Nach dem URL-Verarbeitungsverfahren sollten Kunden jedoch NICHT mehr als 30 Hash-Präfixe senden müssen. Derzeit muss jedes Hash-Präfix genau 4 Byte lang sein. Dieses KANN in Zukunft gelockert werden. Ein base64-codierter String. |
filter |
Optional. Wenn der Client an Filtern interessiert ist, um beispielsweise nur bestimmte Arten von Bedrohungen abzurufen, kann dies angegeben werden. Wenn keine Angabe gemacht wird, werden alle übereinstimmenden Bedrohungen zurückgegeben. Wir empfehlen dringend, dies wegzulassen, um den bestmöglichen Schutz zu erhalten, den Safe Browsing bietet. Der Filter wird mithilfe von Google Common Expression Language angegeben, die Sie unter https://github.com/google/cel-spec sowie allgemeinen Beispielen finden. Hier sind einige konkrete Beispiele, die hier verwendet werden können: Für den Filter Für den Filter „ |
Anfragetext
Der Anfragetext muss leer sein.
Antworttext
Die Antwort, die nach der Suche nach Bedrohungs-Hashes zurückgegeben wurde.
Wird nichts gefunden, gibt der Server den Status „OK“ (HTTP-Statuscode 200) zurück, wobei das Feld fullHashes
leer ist, statt den Status NOT_FOUND (HTTP-Statuscode 404).
Neuerungen in Version 5: Es gibt eine Trennung zwischen FullHash
und FullHashDetail
. Wenn ein Hash eine Website mit mehreren Bedrohungen darstellt (z.B. sowohl MALWARE als auch SOCIAL_ENGINEERING), muss der vollständige Hash nicht doppelt gesendet werden wie in V4. Außerdem wurde die Cache-Dauer auf ein einzelnes cacheDuration
-Feld vereinfacht.
Wenn der Vorgang erfolgreich ist, enthält der Antworttext Daten mit folgender Struktur:
JSON-Darstellung |
---|
{
"fullHashes": [
{
object ( |
Felder | |
---|---|
fullHashes[] |
Unsortierte Liste. Die ungeordnete Liste aller vollständigen Hashes, die gefunden wurden. |
cacheDuration |
Die clientseitige Cache-Dauer. Der Client MUSS diese Dauer zur aktuellen Zeit hinzufügen, um die Ablaufzeit zu bestimmen. Die Ablaufzeit gilt dann für jedes Hash-Präfix, das vom Client in der Anfrage abgefragt wird, unabhängig davon, wie viele vollständige Hashes in der Antwort zurückgegeben werden. Selbst wenn der Server keine vollständigen Hashes für ein bestimmtes Hash-Präfix zurückgibt, MUSS dies ebenfalls vom Client im Cache gespeichert werden. Nur wenn das Feld Wichtig: Der Client DARF NICHT davon ausgehen, dass der Server für alle Antworten die gleiche Cache-Dauer zurückgibt. Der Server KANN unterschiedliche Cache-Dauer für unterschiedliche Antworten je nach Situation auswählen. Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit " |
FullHash
Der vollständige Hash, der mit einer oder mehreren Übereinstimmungen identifiziert wurde.
JSON-Darstellung |
---|
{
"fullHash": string,
"fullHashDetails": [
{
object ( |
Felder | |
---|---|
fullHash |
Der übereinstimmende vollständige Hash. Das ist der SHA256-Hash. Die Länge beträgt genau 32 Byte. Ein base64-codierter String. |
fullHashDetails[] |
Unsortierte Liste. Wiederkehrendes Feld, das die für diesen vollständigen Hash relevanten Details angibt. |
FullHashDetail
Details zum übereinstimmenden vollständigen Hash.
Wichtiger Hinweis zur Aufwärtskompatibilität: Neue Bedrohungstypen und Bedrohungsattribute können jederzeit vom Server hinzugefügt werden; diese Hinzufügungen gelten als geringfügige Versionsänderungen. Gemäß den Google-Richtlinien müssen in APIs keine Nebenversionsnummern offengelegt werden. Weitere Informationen zur Richtlinie zur Versionsverwaltung finden Sie unter https://cloud.google.com/apis/design/versioning. Daher MÜSSEN Clients auf den Empfang von FullHashDetail
-Nachrichten vorbereitet sein, die ThreatType
- oder ThreatAttribute
-Enum-Werte enthalten, die vom Client als ungültig eingestuft werden. Daher liegt es in der Verantwortung des Clients, die Gültigkeit aller ThreatType
- und ThreatAttribute
-Enum-Werte zu prüfen. Wird ein Wert als ungültig betrachtet, MUSS der Client die gesamte FullHashDetail
-Nachricht ignorieren.
JSON-Darstellung |
---|
{ "threatType": enum ( |
Felder | |
---|---|
threatType |
Die Art der Bedrohung. Dieses Feld wird nie leer sein. |
attributes[] |
Unsortierte Liste. Zusätzliche Attribute zu diesen vollständigen Hashes. Dieses Feld kann leer sein. |
ThreatAttribute
Attribute von Bedrohungen. Diese Attribute verleihen einer bestimmten Bedrohung möglicherweise eine zusätzliche Bedeutung, wirken sich aber nicht auf die Art der Bedrohung aus. Beispielsweise kann ein Attribut eine niedrigere Konfidenz angeben, während ein anderes Attribut eine höhere Konfidenz angeben kann. In Zukunft werden möglicherweise weitere Attribute hinzugefügt.
Enums | |
---|---|
THREAT_ATTRIBUTE_UNSPECIFIED |
Unbekanntes Attribut. Wird dies vom Server zurückgegeben, muss der Client die einschließende FullHashDetail vollständig ignorieren. |
CANARY |
Gibt an, dass „threatType“ nicht für die Erzwingung verwendet werden soll. |
FRAME_ONLY |
Gibt an, dass der threatType nur für die Erzwingung von Frames verwendet werden soll. |