Database locali

Questo documento riguarda il seguente metodo: API Update.

Configurazione del database

I client che utilizzano l'API Update sono tenuti a configurare un database locale e a eseguire un download iniziale degli elenchi Web Risk con cui vogliono lavorare. Consulta la sezione Aggiornamenti completi di seguito per ulteriori informazioni su come eseguire il recupero iniziale.

Aggiornamenti del database

Per garantire la protezione contro le minacce più recenti, i client sono vivamente consigliati per aggiornare regolarmente i propri elenchi Web Risk locali utilizzando il metodo threatLists.computeDiff.

La richiesta threatLists.computeDiff specifica l'elenco da aggiornare. Se i client hanno limitazioni di memoria o larghezza di banda, possono anche utilizzare la richiesta per impostare vincoli di aggiornamento (vedi Vincoli di aggiornamento).

threatLists.computeDiff response restituisce un aggiornamento completo o parziale per ogni elenco, come descritto di seguito.

Aggiornamenti completi

Gli aggiornamenti completi vengono restituiti quando il client lascia il campo versionToken nella richiesta threatLists.computeDiff vuota o quando il server determina che è richiesto un aggiornamento completo. Per gli aggiornamenti completi, vengono restituite solo le aggiunte. Il client deve cancellare il database locale prima di applicare gli aggiornamenti ed eseguire il controllo di convalida.

Stato vuoto

Gli aggiornamenti completi vengono restituiti quando il client invia la richiesta iniziale di un elenco. In questo caso, il campo versionToken nella richiesta viene lasciato vuoto (perché non esiste un valore da fornire) e il campo newVersionToken nella risposta restituisce lo stato iniziale dell'elenco locale. Gli aggiornamenti completi vengono restituiti anche quando il client lascia intenzionalmente il campo versionToken vuoto nelle richieste successive. Questa operazione forza l'aggiornamento completo e restituisce un nuovo stato nel campo newVersionToken della risposta.

Decisione del server

A volte, il server Web Risk restituisce un aggiornamento completo quando il client ha richiesto solo un aggiornamento parziale. Questo può accadere quando il client scarica inizialmente una piccola versione dell'elenco e poi esegue l'aggiornamento a una versione più grande dell'elenco; il server restituisce semplicemente un aggiornamento completo con l'intero elenco. Questo può accadere anche se il client non ha scaricato i dati da molto tempo e richiede un aggiornamento parziale; di nuovo, il server restituisce semplicemente un aggiornamento completo con l'intero elenco.

Aggiornamenti parziali

Gli aggiornamenti parziali vengono restituiti quando il client fornisce un valore per il campo versionToken nella richiesta threatLists.computeDiff (l'eccezione, come indicato sopra, è quando il server determina che è richiesto un aggiornamento completo). Per gli aggiornamenti parziali, vengono ripristinate sia le aggiunte sia le rimozioni. Il client aggiorna gli elenchi nel database locale (applicando le rimozioni prima delle aggiunte) ed esegue il controllo di convalida.

Aggiunte

Le aggiunte sono prefissi di hash SHA256 che devono essere aggiunti al database locale. La maggior parte dei prefissi hash è di 4 byte, ma alcuni prefissi hash potrebbero avere una lunghezza compresa tra 4 e 32 byte. Di conseguenza, potrebbero essere restituiti più insiemi di aggiunte; ad esempio, uno contenente i prefissi da 4 byte e uno contenente i prefissi da 5 byte.

Se il client supporta la compressione, la risposta può essere compressa utilizzando la compressione riso. Tuttavia, solo i prefissi hash a 4 byte vengono compressi. I prefissi hash più lunghi vengono sempre inviati in formato non compresso e non elaborato. Per ulteriori dettagli, consulta la sezione Compressione.

Rimozioni

Le rimozioni sono indici a zero zero nel database client ordinato in base al glossario che punta a voci che devono essere rimosse dal database locale. Verrà restituito solo un insieme di rimozioni.

Se il client supporta la compressione, vengono restituiti "indici di riso", "indici di riso". Se la compressione non è supportata, vengono ripristinati "hash non elaborati" e "indici non elaborati". Per ulteriori informazioni, consulta la sezione Compressione/Web-risk/docs/compression).

Controlli di convalida

Quando viene restituita la risposta threatLists.computeDiff, con un aggiornamento completo o un aggiornamento parziale, si prevede che il client esegua un controllo di convalida.

Il client aggiorna prima gli elenchi nel database locale (applicando le rimozioni prima delle aggiunte). Il client quindi calcola l'hash SHA256 dell'elenco locale (ordinato dinamicamente) e lo confronta con il checksum restituito nella risposta. Se i due valori sono uguali, l'elenco Web Risk viene considerato "corretto".

Se i due valori sono diversi, l'elenco Web Risk viene considerato "corrupt." Il client deve cancellare l'elenco dal database ed emettere un secondo aggiornamento con il campo versionToken impostato sulla stringa vuota. In questo modo l'aggiornamento verrà forzato e verranno restituiti il nuovo elenco e il nuovo stato.