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.