更新限制

设置限制

在更新本地数据库时,如数据库更新中所述,客户端可以使用 hashes.search 请求中的 maxUpdateEntriesmaxDatabaseEntries 字段指定大小限制。只有当客户端具有内存或带宽限制时,才应设置限制。

  • 客户端可以在条目数(1 个条目 = 1 个添加项或 1 个移除项)中指定最大更新响应大小 (maxUpdateEntries)。
  • 客户端可以在条目数(数据库中的大多数条目都是 4 字节的哈希前缀,因此假设 1 个条目约 4 个字节)中指定最大数据库大小 (maxDatabaseEntries)。

带宽与存储空间

虽然客户端可以为更新响应和数据库大小指定任意大小,但 Web Risk 服务器只会预先生成有限数量的可能的更新响应和数据库大小。

  • 客户端应使用更新响应大小 (maxUpdateEntries) 来限制带宽用量。
  • 客户端应使用数据库大小 (maxDatabaseEntries) 来限制设备所需的 RAM 或磁盘存储量。

这两个限制都会影响正在更新的数据库大小,因此会影响为用户提供的保护的数量。这意味着本地数据库越大,保护措施越好。

限制条件设置指南

安全浏览列表的大小可能会逐渐或突然发生变化。客户端应为列表更新请求设置 maxUpdateEntries,这样可以限制列表更新响应大小的最大值,并提高无法处理大型更新时的可靠性。

如果没有更严格的要求或没有不太严格的要求,Google 建议使用 maxUpdateEntries=16777216。根据每个哈希前缀的典型列表条目大小(4 个字节),这相当于每个列表大约 67 MB。Google 建议为移动客户端使用较小的限制 maxUpdateEntries=2097152,因为它们的功能通常不太强大。按照每个哈希前缀的典型列表条目大小(4 个字节),这相当于每个列表大约 8 MB。

安全浏览名单的大小和增长率各不相同。但是,客户端应根据每个列表允许的最大内存或带宽用量,为所有列表设置相同的限制。

为了提高可靠性,Google 建议客户端实现用于检测内存或带宽用量超额的遥测,以及能够快速为客户端提供新限制的机制。

客户端状态

Web Risk 服务器绝不会发送使客户端处于过期状态的更新;客户端在每个更新请求后都将是最新的。例如,如果客户端当前有一个含有 4096 个条目的数据库,但只希望下载不超过 2048 个增量,则服务器可能会在客户端真的过期时将其重置为可包含 2048 个条目的数据库。