Cuando los clientes eligen usar la versión 5 de la Navegación segura de Google en el modo en tiempo real sin almacenamiento, no necesitan mantener ninguna base de datos local persistente. Sin embargo, se espera que el cliente siga manteniendo una caché local. Esta caché local no necesita estar en un almacenamiento persistente y se puede borrar en caso de presión de memoria.
Cada vez que el cliente desea verificar una URL en particular, siempre se conecta al servidor para realizar la verificación. Este modo es similar al que pueden implementar los clientes de la API de Lookup v4.
En comparación con el modo en tiempo real, este modo puede usar más ancho de banda de la red, pero puede ser más adecuado si al cliente le resulta inconveniente mantener un estado local persistente.
Procedimiento de verificación de URLs en tiempo real sin una base de datos local
Este procedimiento toma una sola URL u y devuelve SAFE o UNSAFE.
- Sea
expressionsuna lista de expresiones de sufijo o prefijo generadas por la URLu. - Sea
expressionHashesuna lista en la que los elementos son hashes SHA256 de cada expresión enexpressions. - Sea
expressionHashPrefixesuna lista en la que los elementos son los primeros 4 bytes de cada hash enexpressionHashes. - Para cada
expressionHashPrefixdeexpressionHashPrefixes:- Busca
expressionHashPrefixen la caché local. - Si se encuentra la entrada almacenada en caché, haz lo siguiente:
- Determina si la hora actual es posterior a la hora de vencimiento.
- Si es mayor, haz lo siguiente:
- Quita la entrada almacenada en caché encontrada de la caché local.
- Continúa con el bucle.
- Si no es mayor, haz lo siguiente:
- Quita este
expressionHashPrefixen particular deexpressionHashPrefixes. - Comprueba si el hash completo correspondiente dentro de
expressionHashesse encuentra en la entrada almacenada en caché. - Si se encuentra, devuelve
UNSAFE. - Si no se encuentra, continúa con el bucle.
- Quita este
- Si no se encuentra la entrada almacenada en caché, continúa con el bucle.
- Busca
- Envía
expressionHashPrefixesal servidor de la versión 5 de la Navegación segura de Google con RPC SearchHashes o el método de REST hashes.search. Si se produjo un error (incluidos errores de red, errores de HTTP, etcétera), devuelveSAFE. De lo contrario, searesponsela respuesta recibida del servidor de SB, que es una lista de hashes completos junto con información auxiliar que identifica la naturaleza de la amenaza (ingeniería social, software malicioso, etcétera), así como el tiempo de vencimiento de la cachéexpiration. - Para cada
fullHashderesponse:- Inserta
fullHashen la caché local, junto conexpiration.
- Inserta
- Para cada
fullHashderesponse:- Sea
isFoundel resultado de encontrarfullHashenexpressionHashes. - Si
isFoundes falso, continúa con el bucle. - Si
isFoundes verdadero, se devuelveUNSAFE.
- Sea
- Muestra
SAFE.
Al igual que con el modo en tiempo real, este procedimiento no especifica exactamente cómo enviar los prefijos de hash al servidor. Por ejemplo, es aceptable que el cliente envíe todos los expressionHashPrefixes en una sola solicitud, y también es aceptable que envíe cada prefijo individual en expressionHashPrefixes al servidor en solicitudes separadas (quizás de forma paralela). También es aceptable que el cliente envíe prefijos hash no relacionados o generados de forma aleatoria junto con los prefijos hash en expressionHashPrefixes, siempre y cuando la cantidad de prefijos hash enviados en una sola solicitud no supere los 30.