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 desean 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 bases 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 Actualiza restricciones).
threatLists.computeDiff response
muestra una actualización completa o parcial para cada lista, como se explica a continuación.
Actualizaciones completas
Las actualizaciones completas se muestran cuando el cliente deja el campo versionToken
en la solicitud threatLists.computeDiff vacío o cuando el servidor determina que se requiere una actualización completa. Para las 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
Las actualizaciones completas se muestran cuando el cliente envía la solicitud inicial de una lista.
En este caso, el campo versionToken
de la solicitud se deja vacío (porque no hay un valor para proporcionar) y el campo newVersionToken
de la respuesta muestra el estado inicial de la lista local. Las actualizaciones completas también se muestran cuando el cliente deja el campo versionToken
vacío de forma intencional en solicitudes posteriores. Esto forzará una actualización completa y mostrará un estado nuevo en el campo newVersionToken
de la respuesta.
Decisión del servidor
En ocasiones, el servidor de Web Risk muestra una actualización completa cuando el cliente solo solicitó una actualización parcial. Esto puede ocurrir cuando el cliente descarga inicialmente una versión pequeña de la lista y, luego, la actualiza a una versión más grande. El servidor simplemente mostrará una actualización completa con toda la lista. Esto también puede ocurrir si el cliente no descargó datos durante mucho tiempo y solicita una actualización parcial. Una vez más, el servidor simplemente mostrará una actualización completa con la lista completa.
Actualizaciones parciales
Las actualizaciones parciales se muestran cuando el cliente proporciona un valor para el campo versionToken
en la solicitud threatLists.computeDiff
(la excepción, como se señaló anteriormente, es cuando el servidor determina que se requiere una actualización completa). En el caso de las actualizaciones parciales, se muestran las adiciones y las eliminaciones. El cliente actualiza las listas en la base de datos local (aplicando las eliminaciones antes de las adiciones) y, luego, realiza la verificación de validación.
Adiciones
Las incorporaciones son prefijos de hash SHA256 que se deben agregar 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 sumas, por ejemplo, uno que contenga los prefijos de 4 bytes y uno que contenga los prefijos de 5 bytes.
Si el cliente admite la compresión, la respuesta se puede comprimir con la compresión Rice. Sin embargo, solo se comprimen los prefijos de hash de 4 bytes. Los prefijos de hash más largos siempre se envían en formato sin procesar y sin comprimir. Para obtener más detalles, consulta Compresión.
Eliminaciones
Las eliminaciones son índices basados en cero en la base de datos del cliente ordenada lexicológicamente que apuntan a las entradas que se deben quitar 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.
Primero, el cliente actualiza las listas en la base de datos local (aplicando las eliminaciones antes que las adiciones). Luego, el cliente calcula el hash SHA256 de la lista local (ordenada lexicológicamente) y la compara con la suma de comprobación que se muestra en la respuesta. Si los dos valores son iguales, la lista de Web Risk se considera "correcta".
Si los dos valores no son iguales, la lista de riesgos web se considera "corrupta". El cliente debe borrar la lista de la base de datos y volver a emitir una segunda actualización con el campo versionToken
establecido en la cadena vacía. Esto forzará una actualización completa y mostrará una lista y un estado nuevos.