No Storage Real Time Mode

Wenn Clients Google Safe Browsing v5 im Echtzeitmodus ohne Speicherung verwenden, müssen sie keine dauerhafte lokale Datenbank verwalten. Der Client muss jedoch weiterhin einen lokalen Cache verwalten. Ein solcher lokaler Cache muss nicht in einem persistenten Speicher sein und kann bei Speichermangel gelöscht werden.

Wenn der Client eine bestimmte URL prüfen möchte, stellt er immer eine Verbindung zum Server her, um die Prüfung durchzuführen. Dieser Modus ähnelt dem, was Clients der v4 Lookup API implementieren können.

Im Vergleich zum Echtzeitmodus wird in diesem Modus möglicherweise mehr Netzwerkbandbreite verwendet. Er kann jedoch besser geeignet sein, wenn es für den Client unpraktisch ist, einen persistenten lokalen Status beizubehalten.

URL-Prüfung in Echtzeit ohne lokale Datenbank

Diese Prozedur verwendet eine einzelne URL u und gibt SAFE oder UNSAFE zurück.

  1. Sei expressions eine Liste von Suffix-/Präfixausdrücken, die von der URL u generiert werden.
  2. Sei expressionHashes eine Liste, deren Elemente SHA256-Hashes der einzelnen Ausdrücke in expressions sind.
  3. Sei expressionHashPrefixes eine Liste, deren Elemente die ersten 4 Byte jedes Hashs in expressionHashes sind.
  4. Für jede expressionHashPrefix von expressionHashPrefixes:
    1. expressionHashPrefix im lokalen Cache nachschlagen
    2. Wenn der Cache-Eintrag gefunden wird:
      1. Ermitteln Sie, ob die aktuelle Zeit nach der Ablaufzeit liegt.
      2. Wenn der Wert größer ist:
        1. Entfernen Sie den gefundenen Cache-Eintrag aus dem lokalen Cache.
        2. Fahre mit der Schleife fort.
      3. Wenn er nicht größer ist:
        1. Entfernen Sie diese expressionHashPrefix aus expressionHashPrefixes.
        2. Prüfen Sie, ob der entsprechende vollständige Hash innerhalb von expressionHashes im Cache-Eintrag gefunden wird.
        3. Wenn gefunden, wird UNSAFE zurückgegeben.
        4. Wenn er nicht gefunden wird, fahren Sie mit der Schleife fort.
    3. Wenn der Cache-Eintrag nicht gefunden wird, wird die Schleife fortgesetzt.
  5. Senden Sie expressionHashPrefixes mit RPC SearchHashes oder der REST-Methode hashes.search an den Google Safe Browsing v5-Server. Wenn ein Fehler aufgetreten ist (einschließlich Netzwerkfehler, HTTP-Fehler usw.), geben Sie SAFE zurück. Andernfalls sei die Antwort die response, die vom Safe Browsing-Server empfangen wurde. Das ist eine Liste mit vollständigen Hashes zusammen mit einigen Zusatzinformationen, die die Art der Bedrohung (Social Engineering, Malware usw.) sowie die Cache-Ablaufzeit expiration angeben.
  6. Für jede fullHash von response:
    1. Füge fullHash zusammen mit expiration in den lokalen Cache ein.
  7. Für jede fullHash von response:
    1. Sei isFound das Ergebnis der Suche nach fullHash in expressionHashes.
    2. Wenn isFound „False“ ist, wird die Schleife fortgesetzt.
    3. Wenn isFound „True“ ist, wird UNSAFE zurückgegeben.
  8. Rückflug SAFE.

Wie beim Echtzeitmodus wird in diesem Verfahren nicht genau festgelegt, wie die Hash-Präfixe an den Server gesendet werden. Es ist beispielsweise zulässig, dass der Client alle expressionHashPrefixes in einer einzigen Anfrage sendet. Es ist auch zulässig, dass der Client jedes einzelne Präfix in expressionHashPrefixes in separaten Anfragen an den Server sendet (möglicherweise parallel). Es ist auch zulässig, dass der Client zusammen mit den Hash-Präfixen in expressionHashPrefixes nicht verwandte oder zufällig generierte Hash-Präfixe sendet, solange die Anzahl der in einer einzelnen Anfrage gesendeten Hash-Präfixe 30 nicht überschreitet.