借助安全浏览 API,您的客户端应用可以根据 Google 持续更新的不安全网络资源列表执行实时或基于列表的网址检查。不安全的网络资源示例包括社会工程学网站(如网上诱骗和欺骗性网站)以及托管恶意软件或垃圾软件的网站。安全浏览列表中包含的任何网址都被视为不安全网址。
如需确定某个网址是否在任何安全浏览列表中,客户端可以使用 urls.search 或 hashes.search。
新变化
数据新鲜度
传统上,安全浏览客户端会定期下载用于匹配潜在威胁的威胁列表。随着威胁数量和速度的不断增加,这些本地威胁列表在抵御现代威胁方面的效果越来越差。
为了弥合这一差距,我们引入了将协议更改为默认检查的功能,而不是之前在 V4 中提供的默认允许协议。为此,我们引入了下载可能良性的网站列表(称为“全局缓存”)的功能。如果在全局缓存中找不到某个网址,客户端应使用该 API 执行检查,以确定该网址是否构成威胁。
此功能可默认执行检查,并改进了服务中的数据新鲜度,从而提供更快、近乎实时的保护,防范新威胁。
IP 隐私保护
安全浏览 API 仅将 IP 地址用于基本的网络需求和防 DoS 目的。
我们引入了一个配套 API,即 Safe Browsing Oblivious HTTP Gateway API,以提供额外的隐私保护保证。此功能使用 Oblivious HTTP 向 Google 隐藏最终用户的 IP 地址。其运作方式是让非串谋的第三方处理用户请求的加密版本,然后将其转发给 Google。因此,第三方只能访问 IP 地址,而 Google 只能访问请求的内容。第三方运行 Oblivious HTTP 中继(例如 Fastly 提供的这项服务),而 Google 运行 Oblivious HTTP 网关。这是一个可选的辅助 API。如果将此功能与 Google 安全浏览功能搭配使用,最终用户的 IP 地址将不再发送给 Google。
如需了解更多详情,请参阅 Safe Browsing Oblivious HTTP Gateway API 文档。
搜索方法
我们来了解一下可用于实时检查网址的不同方法。
urls.search
允许客户端应用将网址发送给安全浏览服务,以检查网址是否关联了任何威胁。
优点
- 简单的网址检查:您可以发送带有实际网址的请求,然后服务器会以网址及其关联的威胁(如果有)进行响应。
缺点
- 无网址保密性:请求包含正在检查的原始网址。
如果这些优点/缺点符合您的要求,请考虑使用 urls.search,因为它易于使用。
查看方法使用的服务条款,因为它与 hashes.search 不同。
hashes.search
允许客户端应用检查一组网址中是否存在已知威胁,而无需向服务透露实际网址。具体做法是仅提供网址的哈希前缀。响应将包含具有分片哈希前缀的已知威胁的完整哈希。
优点
- 网址保密性:请求中仅包含网址的 4 字节哈希前缀。
- 兼容性:由于客户端会处理网址规范化和哈希处理,因此此方法可与使用本地数据库的模式(例如实时模式和本地列表模式)无缝集成。
缺点
- 复杂的网址检查:您需要知道如何对网址进行规范化、创建后缀/前缀表达式以及计算 SHA256 哈希值,以便向此方法发出请求,并与不安全列表或全局缓存的本地副本进行比较。
如果您需要优先考虑网址保密性,并且有意使用实时模式或本地列表模式,建议采用 hashes.search 方法。
HashList 方法
通过这些方法,客户端可以下载并存储不安全列表和全局缓存的哈希版本。客户端可以使用此信息来确定是否应实时搜索相关网址。
如需详细了解如何使用这些方法,请参阅本地数据库页面。
示例请求
本部分记录了一些直接使用 HTTP API 访问安全浏览的示例。一般建议使用生成的语言绑定,因为它可以方便地自动处理编码和解码。请参阅相应绑定的文档。
使用 urls.search 的 HTTP 请求示例:
GET https://safebrowsing.googleapis.com/v5alpha1/urls:search?key=INSERT_YOUR_API_KEY_HERE&urls=testsafebrowsing.appspot.com/
使用 hashes.search 的 HTTP 请求示例:
GET https://safebrowsing.googleapis.com/v5/hashes:search?key=INSERT_YOUR_API_KEY_HERE&hashPrefixes=WwuJdQ
使用 hashLists.batchGet 的 HTTP 请求示例:
GET https://safebrowsing.googleapis.com/v5/hashLists:batchGet?key=INSERT_YOUR_API_KEY_HERE&names=se&names=mw-4b
所有响应正文都是您可以解码的协议缓冲区格式的载荷。