Bases de datos locales

Este documento se aplica al siguiente método: API de Update.

Configuración de la base de datos

Los clientes que usan la API de Update deben configurar una base de datos local y realizar una descarga inicial de las listas de Web Risk con las que quieren trabajar. Consulta la sección Actualizaciones completas a continuación para obtener más información sobre cómo realizar la recuperación inicial.

Actualizaciones de la base de datos

Para garantizar la protección contra las amenazas más recientes, se recomienda a los clientes que actualicen periódicamente sus listas locales de Web Risk mediante el método threatLists.computeDiff.

La solicitud threatLists.computeDiff especifica la lista que se actualizará. Si los clientes tienen limitaciones de memoria o ancho de banda, también pueden usar la solicitud para establecer restricciones de actualización (consulta Restricciones de actualización).

threatLists.computeDiff response muestra una actualización completa o parcial para cada lista, como se explica a continuación.

Actualizaciones completas

Se muestran las actualizaciones completas cuando el cliente deja vacío el campo versionToken en la solicitud deThreatLists.computeDiff o cuando el servidor determina que se requiere una actualización completa. Para actualizaciones completas, solo se muestran las adiciones. Se espera que el cliente borre la base de datos local antes de aplicar las actualizaciones y realizar la verificación de validación.

Estado vacío

Se muestran actualizaciones completas cuando el cliente envía la solicitud inicial de una lista. En este caso, el campo versionToken en la solicitud queda vacío (porque no hay valor para proporcionar) y el campo newVersionToken en la respuesta muestra el estado inicial de la lista local. También se muestran actualizaciones completas cuando el cliente deja el campo versionToken vacío a propósito en las solicitudes posteriores. Esto forzará una actualización completa y mostrará un estado nuevo en el campo newVersionToken de la respuesta.

Decisión sobre servidores

En ocasiones, el servidor de Web Risk muestra una actualización completa cuando solo el cliente solicitó una actualización parcial. Esto puede suceder cuando el cliente descarga inicialmente una pequeña versión de la lista y, luego, la actualiza a una más grande. el servidor solo mostrará una actualización completa con la lista completa. Esto también puede ocurrir si el cliente no descargó datos durante mucho tiempo y solicita una actualización parcial. nuevamente, el servidor simplemente mostrará una actualización completa con la lista completa.

Actualizaciones parciales

Se muestran actualizaciones parciales cuando el cliente proporciona un valor para el campo versionToken en la solicitud threatLists.computeDiff (la excepción, como se indicó antes, es cuando el servidor determina que se requiere una actualización completa). Para actualizaciones parciales, se muestran adiciones y eliminaciones. El cliente actualiza las listas en la base de datos local (aplica las eliminaciones antes de las adiciones) y luego realiza la verificación de validación.

Adiciones

Las adiciones son prefijos hash SHA256 que deben agregarse a la base de datos local. La mayoría de los prefijos hash tienen 4 bytes de longitud, pero algunos pueden tener cualquier longitud entre 4 y 32 bytes. Por lo tanto, se podrían mostrar varios conjuntos de adiciones. por ejemplo, uno con los prefijos de 4 bytes y otro con los prefijos de 5 bytes.

Si el cliente admite la compresión, se puede comprimir la respuesta mediante la compresión de arroz. Sin embargo, solo se comprimen los prefijos hash de 4 bytes. Los prefijos hash más largos siempre se envían sin formato y sin comprimir. Para obtener más detalles, consulta Compresión.

Eliminaciones

Las eliminaciones son índices basados en cero en la base de datos de cliente ordenada lexicográficamente que apuntan a entradas que deben quitarse de la base de datos local. Solo se mostrará un conjunto de eliminaciones.

Si el cliente admite la compresión, se muestran los "hashes de arroz" y los "índices de arroz". Si no se admite la compresión, se muestran "hashes sin procesar" e "índices sin procesar". Para obtener más detalles, consulta Compresión/web-risk/docs/compression).

Verificaciones de validación

Cuando se muestra la respuesta threatLists.computeDiff con una actualización completa o parcial; se espera que el cliente realice una verificación de validación.

El cliente primero actualiza las listas en la base de datos local (aplica las eliminaciones antes de las adiciones). Luego, el cliente calcula el hash SHA256 de la lista local (ordenada lexicográficamente) y lo compara con la suma de verificación que se muestra en la respuesta. Si los dos valores son iguales, la lista Web Risk se considera “correcta”.

Si los dos valores no son iguales, la lista Web Risk se considera “dañado”. El cliente debe borrar la lista de la base de datos y volver a emitir una segunda actualización con el campo versionToken configurado en la string vacía. Esto forzará una actualización completa y mostrará una lista y un estado nuevos.