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.
- Niech
expressionsbędzie listą wyrażeń przyrostków/przedrostków wygenerowanych przez adres URLu. - Niech
expressionHashesbędzie listą, której elementami są skróty SHA256 poszczególnych wyrażeń wexpressions. - Niech
expressionHashPrefixesbędzie listą, której elementami są pierwsze 4 bajty każdego hasza wexpressionHashes. - Za każde
expressionHashPrefixzexpressionHashPrefixes:- Wyszukaj
expressionHashPrefixw pamięci podręcznej. - Jeśli wpis z pamięci podręcznej zostanie znaleziony:
- Sprawdza, czy bieżący czas jest późniejszy niż czas wygaśnięcia.
- Jeśli jest większa:
- Usuń znaleziony wpis z pamięci podręcznej.
- Kontynuuj pętlę.
- Jeśli nie jest większa:
- Usuń to urządzenie
expressionHashPrefixz kontaexpressionHashPrefixes. - Sprawdź, czy odpowiedni pełny skrót w
expressionHashesznajduje się w pozycji w pamięci podręcznej. - Jeśli zostanie znaleziony, zwróć
UNSAFE. - Jeśli nie znajdziesz, kontynuuj pętlę.
- Usuń to urządzenie
- Jeśli nie znajdziesz wpisu w pamięci podręcznej, kontynuuj pętlę.
- Wyszukaj
- Wyślij
expressionHashPrefixesna 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ędzieresponseotrzymana 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ęcznejexpiration. - Za każde
fullHashzresponse:- Wstaw
fullHashdo pamięci podręcznej lokalnej wraz zexpiration.
- Wstaw
- Za każde
fullHashzresponse:- Niech
isFoundbędzie wynikiem wyszukaniafullHashwexpressionHashes. - Jeśli
isFoundma wartość False, kontynuuj pętlę. - Jeśli
isFoundma wartość PRAWDA, zwracaUNSAFE.
- Niech
- 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.