Lokale Datenbanken
Dieses Dokument bezieht sich auf die folgende Methode: Update API.
Datenbank einrichten
Clients, die die Update API verwenden, müssen eine lokale Datenbank einrichten und einen ersten Download der Web Risk-Listen durchführen, mit denen sie arbeiten sollen. Weitere Informationen zur Durchführung des ersten Abrufs finden Sie im Abschnitt Vollständige Updates unten.
Aktualisierungen der Datenbank
Zum Schutz vor den neuesten Bedrohungen wird Kunden dringend empfohlen, ihre lokalen Web Risik-Listen regelmäßig mit der Methode threatLists.computeDiff
zu aktualisieren.
Die threatLists.computeDiff
-Anfrage gibt die zu aktualisierende Liste an. Wenn Clients Speicher- oder Bandbreitenbeschränkungen haben, können sie die Anfrage auch zum Festlegen von Aktualisierungseinschränkungen verwenden (siehe Aktualisierungseinschränkungen).
threatLists.computeDiff response
gibt entweder eine vollständige Aktualisierung oder eine teilweise Aktualisierung für jede Liste zurück, wie unten erläutert.
Vollständige Updates
Vollständige Aktualisierungen werden zurückgegeben, wenn der Client das Feld versionToken
in der threatLists.computeDiff-Anfrage leer lässt oder wenn der Server feststellt, dass eine vollständige Aktualisierung erforderlich ist. Bei vollständigen Aktualisierungen werden nur Hinzufügungen zurückgegeben. Der Client muss die lokale Datenbank löschen, bevor die Aktualisierungen angewendet und die Validierungsprüfung durchgeführt wird.
Leerer Zustand
Vollständige Aktualisierungen werden zurückgegeben, wenn der Client die erste Anfrage für eine Liste sendet.
In diesem Fall bleibt das Feld versionToken
in der Anfrage leer, da kein Wert angegeben werden muss, und das Feld newVersionToken
in der Antwort gibt den Ausgangsstatus für die lokale Liste zurück. Vollständige Aktualisierungen werden auch zurückgegeben, wenn der Client das Feld versionToken
bei nachfolgenden Anfragen absichtlich leer lässt. Dadurch wird eine vollständige Aktualisierung erzwungen und ein neuer Status im Feld newVersionToken
der Antwort zurückgegeben.
Serverentscheidung
Gelegentlich gibt der Web Risk-Server eine vollständige Aktualisierung zurück, wenn der Client nur eine teilweise Aktualisierung angefordert hat. Dies kann passieren, wenn der Client anfangs eine kleine Version der Liste herunterlädt und dann auf eine größere Version der Liste aktualisiert. Der Server gibt dann einfach ein vollständiges Update mit der gesamten Liste zurück. Dies kann auch der Fall sein, wenn der Client lange Zeit keine Daten heruntergeladen hat und eine teilweise Aktualisierung anfordert. Auch hier gibt der Server eine vollständige Aktualisierung mit der gesamten Liste zurück.
Partielle Updates
Teilaktualisierungen werden zurückgegeben, wenn der Client einen Wert für das Feld versionToken
in der threatLists.computeDiff
-Anfrage angibt. Die Ausnahme ist, wie oben erwähnt, wenn der Server die Notwendigkeit einer vollständigen Aktualisierung feststellt. Bei Teilaktualisierungen werden sowohl Hinzufügungen als auch Entfernungen zurückgegeben. Der Client aktualisiert die Listen in der lokalen Datenbank (wobei die Entfernungen vor den Hinzufügungen angewendet werden) und führt dann die Validierungsprüfung durch.
Hinzufügungen
Hinzufügungen sind SHA 256-Hash-Präfixe, die der lokalen Datenbank hinzugefügt werden sollten. Die meisten Hash-Präfixe sind 4 Byte lang. Einige Hash-Präfixe können jedoch eine beliebige Länge zwischen 4 und 32 Byte haben. Daher könnten mehrere Sätze von Hinzufügungen zurückgegeben werden. z. B. eine mit den 4-Byte-Präfixen und eine mit 5-Byte-Präfixen.
Wenn der Client die Komprimierung unterstützt, kann die Antwort mit der Rice-Komprimierung komprimiert werden. Es werden jedoch nur 4-Byte-Hash-Präfixe komprimiert. Längere Hash-Präfixe werden immer im unkomprimierten, unformatierten Format gesendet. Weitere Informationen finden Sie unter Komprimierung.
Entfernungen
Entfernungen sind nullbasierte Indizes in der lexikografisch sortierten Clientdatenbank, die auf Einträge verweisen, die aus der lokalen Datenbank entfernt werden sollen. Es wird nur ein Satz von Entfernungen zurückgegeben.
Wenn der Client die Komprimierung unterstützt, werden "RICE-Hashes" und "RICE-Indexe" zurückgegeben. Wenn die Komprimierung nicht unterstützt wird, werden "unformatierte Hashes" und "unformatierte Indexe" zurückgegeben. Weitere Informationen finden Sie unter Komprimierung/web-Risiko/docs/compression).
Validierungsprüfungen
Wenn die threatLists.computeDiff
-Antwort zurückgegeben wird: mit einer vollständigen oder einer teilweisen Aktualisierung muss der Client eine Validierungsprüfung durchführen.
Der Client aktualisiert zuerst die Listen in der lokalen Datenbank (wobei die Entfernungen vor den Hinzufügungen angewendet werden). Der Client berechnet dann den SHA 256-Hash der (lexikografisch sortierten) lokalen Liste und vergleicht ihn mit der in der Antwort zurückgegebenen Prüfsumme. Wenn die beiden Werte gleich sind, wird die Liste der Webrisiken als "richtig" eingestuft.
Wenn die beiden Werte nicht gleich sind, wird die Liste der Webrisiken als "beschädigt" eingestuft. Der Client muss die Liste aus der Datenbank löschen und eine zweite Aktualisierung mit dem Feld versionToken
auf den leeren String durchführen. Dadurch wird eine vollständige Aktualisierung erzwungen und eine neue Liste und ein neuer Status zurückgegeben.