Method: hashes.search

Suche nach vollständigen Hashes, die den angegebenen Präfixen entsprechen.

Dies ist eine benutzerdefinierte Methode gemäß der Definition von https://google.aip.dev/136. Die benutzerdefinierte Methode bezieht sich darauf, dass diese Methode einen benutzerdefinierten Namen innerhalb der allgemeinen API-Entwicklungsnomenklatur von Google hat. Sie bezieht sich nicht auf die Verwendung einer benutzerdefinierten HTTP-Methode.

HTTP-Anfrage

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

Die URL verwendet die Syntax der gRPC-Transcodierung.

Abfrageparameter

Parameter
hashPrefixes[]

string (bytes format)

Erforderlich. Die Hash-Präfixe, nach denen gesucht werden soll. Clients DÜRFEN NICHT mehr als 1.000 Hash-Präfixe senden. Bei der URL-Verarbeitung sollten Clients jedoch NICHT mehr als 30 Hash-Präfixe senden müssen.

Derzeit muss jedes Hash-Präfix genau 4 Byte lang sein. KANN in Zukunft entspannt werden.

Ein base64-codierter String.

Anfragetext

Der Anfragetext muss leer sein.

Antworttext

Die Antwort, die nach der Suche nach Bedrohungs-Hashes zurückgegeben wurde.

Wenn nichts gefunden wird, gibt der Server den Status „OK“ (HTTP-Statuscode 200) ohne das Feld fullHashes zurück, anstatt den Status NOT_FOUND (HTTP-Statuscode 404).

Neu in V5: 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 zweimal gesendet werden wie in V4. Außerdem wurde die Cache-Dauer zu einem einzigen cacheDuration-Feld vereinfacht.

Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:

JSON-Darstellung
{
  "fullHashes": [
    {
      object (FullHash)
    }
  ],
  "cacheDuration": string
}
Felder
fullHashes[]

object (FullHash)

Unsortierte Liste. Die ungeordnete Liste der gefundenen vollständigen Hashes.

cacheDuration

string (Duration format)

Die clientseitige Cache-Dauer. Der Kunde MÜSSEN diese Dauer zur aktuellen Uhrzeit 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. Auch 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.

Wenn und nur wenn das Feld fullHashes leer ist, KANN der Client den cacheDuration erhöhen, um einen neuen Ablauf zu bestimmen, der nach dem vom Server angegebenen Zeitpunkt liegt. Die Cache-Dauer darf in jedem Fall nicht länger als 24 Stunden sein.

Wichtig: Der Client DARF NICHT davon ausgehen, dass der Server für alle Antworten dieselbe Cache-Dauer zurückgibt. Der Server KANN für unterschiedliche Antworten je nach Situation unterschiedliche Cache-Daueren wählen.

Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit "s". Beispiel: "3.5s".

FullHash

Der vollständige Hash, der mit einer oder mehreren Übereinstimmungen identifiziert wurde.

JSON-Darstellung
{
  "fullHash": string,
  "fullHashDetails": [
    {
      object (FullHashDetail)
    }
  ]
}
Felder
fullHash

string (bytes format)

Entspricht dem vollständigen Hashwert. Das ist der SHA256-Hash. Die Länge beträgt genau 32 Byte.

Ein base64-codierter String.

fullHashDetails[]

object (FullHashDetail)

Unsortierte Liste. Ein wiederkehrendes Feld zur Angabe der für diesen vollständigen Hash relevanten Details.

FullHashDetail

Details zu einem übereinstimmenden vollständigen Hash.

Wichtiger Hinweis zur Aufwärtskompatibilität: Der Server kann jederzeit neue Bedrohungstypen und Bedrohungsattribute hinzufügen. gelten diese Ergänzungen als geringfügige Versionsänderungen. Gemäß den Richtlinien von Google werden Nebenversionen in APIs nicht offengelegt (siehe https://cloud.google.com/apis/design/versioning für die Richtlinie zur Versionsverwaltung). Clients MÜSSEN also darauf vorbereitet sein, FullHashDetail-Nachrichten mit ThreatType-Enum-Werten oder ThreatAttribute-Enum-Werten zu erhalten, die vom Client als ungültig angesehen werden. Daher ist der Client dafür verantwortlich, die Gültigkeit aller ThreatType- und ThreatAttribute-enum-Werte zu prüfen. Wenn ein Wert als ungültig betrachtet wird, MUSS der Kunde die gesamte FullHashDetail-Nachricht ignorieren.

JSON-Darstellung
{
  "threatType": enum (ThreatType),
  "attributes": [
    enum (ThreatAttribute)
  ]
}
Felder
threatType

enum (ThreatType)

Die Art der Bedrohung. Dieses Feld wird nie leer sein.

attributes[]

enum (ThreatAttribute)

Unsortierte Liste. Zusätzliche Attribute zu diesen vollständigen Hashes. Dieses Feld ist möglicherweise leer.

ThreatType

Arten von Bedrohungen

Enums
THREAT_TYPE_UNSPECIFIED Unbekannter Bedrohungstyp. Wenn dies vom Server zurückgegeben wird, muss der Client das umschließende FullHashDetail vollständig ignorieren.
MALWARE

Malware-Bedrohungstyp. Malware ist eine Software oder mobile App, die speziell dazu entwickelt wurde, einem Computer, einem Mobilgerät, der darauf ausgeführten Software oder deren Nutzern zu schaden. Malware weist bösartiges Verhalten auf und installiert unter anderem Software ohne das Einverständnis des Nutzers sowie schädliche Software wie Viren.

Weitere Informationen finden Sie hier.

SOCIAL_ENGINEERING

Social-Engineering-Bedrohungstyp. Social-Engineering-Seiten geben vor, im Namen eines Dritten zu handeln, um Zuschauer dazu zu bringen, eine Aktion durchzuführen, bei der sie nur einem echten Vertreter dieses Drittanbieters vertrauen würden. Phishing ist eine Form von Social Engineering, bei der Zuschauer dazu verleitet werden, bestimmte Informationen wie Anmeldedaten anzugeben.

Weitere Informationen finden Sie hier.

UNWANTED_SOFTWARE Der Bedrohungstyp für unerwünschte Software. Unerwünschte Software ist Software, die nicht den Google-Prinzipien in Bezug auf Software entspricht, aber keine Malware ist.
POTENTIALLY_HARMFUL_APPLICATION Potenziell schädliche App-Bedrohungsart, wie sie von Google Play Protect für den Play Store verwendet wird.

ThreatAttribute

Attribute von Bedrohungen. Diese Attribute können einer bestimmten Bedrohung zusätzliche Bedeutung geben, wirken sich jedoch nicht auf den Bedrohungstyp 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. Wenn dies vom Server zurückgegeben wird, muss der Client das umschließende FullHashDetail vollständig ignorieren.
CANARY Gibt an, dass der 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.