No Storage Real Time Mode

Jeśli klienci zdecydują się korzystać z Bezpiecznego przeglądania Google w wersji 5 w trybie czasu rzeczywistego bez przechowywania danych, nie muszą utrzymywać żadnej trwałej lokalnej bazy danych. Klient nadal powinien jednak utrzymywać lokalną pamięć podręczną. Taka pamięć podręczna nie musi być przechowywana w pamięci trwałej i może zostać wyczyszczona w przypadku braku pamięci.

Gdy klient chce sprawdzić konkretny adres URL, zawsze łączy się z serwerem, aby przeprowadzić weryfikację. Ten tryb jest podobny do tego, który mogą wdrożyć klienci interfejsu Lookup API w wersji 4.

W porównaniu z trybem czasu rzeczywistego ten tryb może wykorzystywać większą przepustowość sieci, ale może być bardziej odpowiedni, jeśli klientowi trudno jest utrzymywać trwały stan lokalny.

Procedura sprawdzania adresów URL w czasie rzeczywistym bez lokalnej bazy danych

Ta procedura przyjmuje jeden adres URL u i zwraca SAFE lub UNSAFE.

  1. Niech expressions będzie listą wyrażeń przyrostków/przedrostków wygenerowanych przez adres URL u.
  2. Niech expressionHashes będzie listą, której elementami są skróty SHA256 poszczególnych wyrażeń w expressions.
  3. Niech expressionHashPrefixes będzie listą, której elementami są pierwsze 4 bajty każdego hasza w expressionHashes.
  4. Za każde expressionHashPrefixexpressionHashPrefixes:
    1. Wyszukaj expressionHashPrefix w pamięci podręcznej.
    2. Jeśli wpis z pamięci podręcznej zostanie znaleziony:
      1. Sprawdza, czy bieżący czas jest późniejszy niż czas wygaśnięcia.
      2. Jeśli jest większa:
        1. Usuń znaleziony wpis z pamięci podręcznej.
        2. Kontynuuj pętlę.
      3. Jeśli nie jest większa:
        1. Usuń to urządzenie expressionHashPrefix z konta expressionHashPrefixes.
        2. Sprawdź, czy odpowiedni pełny skrót w expressionHashes znajduje się w pozycji w pamięci podręcznej.
        3. Jeśli zostanie znaleziony, zwróć UNSAFE.
        4. Jeśli nie znajdziesz, kontynuuj pętlę.
    3. Jeśli nie znajdziesz wpisu w pamięci podręcznej, kontynuuj pętlę.
  5. Wyślij expressionHashPrefixes na serwer Bezpiecznego przeglądania Google w wersji 5 za pomocą RPC SearchHashes lub metody REST hashes.search. Jeśli wystąpił błąd (w tym błędy sieci, błędy HTTP itp.), zwróć wartość SAFE. W przeciwnym razie niech odpowiedzią będzie response otrzymana z serwera SB, czyli lista pełnych skrótów wraz z informacjami pomocniczymi określającymi charakter zagrożenia (inżynieria społeczna, złośliwe oprogramowanie itp.) oraz czas wygaśnięcia pamięci podręcznej expiration.
  6. Za każde fullHashresponse:
    1. Wstaw fullHash do pamięci podręcznej lokalnej wraz z expiration.
  7. Za każde fullHashresponse:
    1. Niech isFound będzie wynikiem wyszukania fullHashexpressionHashes.
    2. Jeśli isFound ma wartość False, kontynuuj pętlę.
    3. Jeśli isFound ma wartość PRAWDA, zwraca UNSAFE.
  8. Zwrot: SAFE.

Podobnie jak w przypadku trybu czasu rzeczywistego, ta procedura nie określa dokładnie, jak wysyłać prefiksy skrótów do serwera. Na przykład klient może wysłać wszystkie prefiksy expressionHashPrefixes w jednym żądaniu, ale może też wysłać każdy prefiks expressionHashPrefixes do serwera w osobnych żądaniach (być może równolegle). Klient może też wysyłać niepowiązane lub losowo wygenerowane prefiksy skrótów razem z prefiksami skrótów w expressionHashPrefixes, o ile liczba prefiksów skrótów wysyłanych w jednym żądaniu nie przekracza 30.