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.