Cuando los clientes eligen usar la versión 5 de Navegación Segura de Google en este modo, el comportamiento del cliente es similar al de la API de Update de la versión 4, excepto que se usa la superficie de API mejorada de la versión 5. Los clientes mantendrán en su base de datos local un conjunto de listas de amenazas con el formato de prefijos de hash SHA256 de expresiones de URL de prefijo de ruta de acceso o sufijo de host. Cada vez que el cliente desea verificar una URL en particular, se realiza una verificación con la lista local de amenazas. El cliente se conecta al servidor para continuar con la verificación solo si hay una coincidencia.
Al igual que en el caso anterior, el cliente también mantendrá una caché local que no necesita estar en el almacenamiento persistente.
Procedimiento de verificación de URL de la Lista de amenazas locales
Este procedimiento también se realiza cuando el cliente usa el procedimiento Modo en tiempo real y devuelve el valor UNSURE.
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
- Para cada
expressionHashPrefixdeexpressionHashPrefixes:- Busca
expressionHashPrefixen la base de datos local de la lista de amenazas. - Si no se encuentra el
expressionHashPrefixen la base de datos de la lista de amenazas local, quítalo deexpressionHashPrefixes.
- 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, sea response la respuestaresponserecibida 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, devuelveUNSAFE.
- Sea
- Muestra
SAFE.