搜索与指定前缀匹配的完整哈希。
这是 https://google.aip.dev/136 中定义的自定义方法(自定义方法是指在 Google 的一般 API 开发命名规范中具有自定义名称的方法;它不是指使用自定义 HTTP 方法)。
HTTP 请求
GET https://safebrowsing.googleapis.com/v5/hashes:search
网址采用 gRPC 转码语法。
查询参数
| 参数 | |
|---|---|
hashPrefixes[] |
必需。要查找的哈希前缀。客户端不得发送超过 1000 个哈希前缀。不过,按照网址处理程序,客户端不应需要发送超过 30 个哈希前缀。 目前,每个哈希前缀的长度都必须正好为 4 个字节。未来可能会放宽此限制。 使用 base64 编码的字符串。 |
请求正文
请求正文必须为空。
响应正文
搜索威胁哈希后返回的响应。
如果未找到任何内容,服务器将返回“确定”状态(HTTP 状态代码 200),但 fullHashes 字段为空,而不是返回“未找到”状态(HTTP 状态代码 404)。
V5 中的新变化:FullHash 和 FullHashDetail 已分离。如果哈希表示某个网站存在多种威胁(例如,同时存在 MALWARE 和 SOCIAL_ENGINEERING),则无需像在 V4 中那样发送两次完整哈希。此外,缓存时长已简化为单个 cacheDuration 字段。
如果成功,响应正文将包含结构如下的数据:
| JSON 表示法 |
|---|
{
"fullHashes": [
{
object ( |
| 字段 | |
|---|---|
fullHashes[] |
无序列表。找到的完整哈希的无序列表。 |
cacheDuration |
客户端缓存时长。客户端必须将此时长添加到当前时间,以确定过期时间。然后,过期时间会应用于客户端在请求中查询的每个哈希前缀,无论响应中返回了多少个完整哈希。即使服务器未针对特定哈希前缀返回任何完整哈希,客户端也必须缓存此事实。 当且仅当字段 重要提示:客户端不得假定服务器会针对所有响应返回相同的缓存时长。服务器可能会根据具体情况为不同的响应选择不同的缓存时长。 该时长以秒为单位,最多包含九个小数位,以“ |
FullHash
通过一个或多个匹配项识别出的完整哈希。
| JSON 表示法 |
|---|
{
"fullHash": string,
"fullHashDetails": [
{
object ( |
| 字段 | |
|---|---|
fullHash |
匹配的完整哈希。这是 SHA256 哈希值。长度将正好为 32 字节。 使用 base64 编码的字符串。 |
fullHashDetails[] |
无序列表。一个重复字段,用于标识与此完整哈希相关联的详细信息。 |
FullHashDetail
有关匹配的完整哈希的详细信息。
关于向前兼容性的重要说明:服务器可能会随时添加新的威胁类型和威胁属性;这些添加项被视为次要版本更改。根据 Google 的政策,API 中不会公开次要版本号(有关版本控制政策,请参阅 https://cloud.google.com/apis/design/versioning),因此客户端必须准备好接收包含 ThreatType 枚举值或被客户端视为无效的 ThreatAttribute 枚举值的 FullHashDetail 消息。因此,客户端有责任检查所有 ThreatType 和 ThreatAttribute 枚举值的有效性;如果任何值被视为无效,客户端必须忽略整个 FullHashDetail 消息。
| JSON 表示法 |
|---|
{ "threatType": enum ( |
| 字段 | |
|---|---|
threatType |
威胁类型。此字段不得为空。 |
attributes[] |
无序列表。有关这些完整哈希的其他属性。此字段可能为空。 |
ThreatAttribute
威胁的属性。这些属性可能会为特定威胁赋予额外的含义,但不会影响威胁类型。例如,一个属性可能指定较低的置信度,而另一个属性可能指定较高的置信度。未来可能会添加更多属性。
| 枚举 | |
|---|---|
THREAT_ATTRIBUTE_UNSPECIFIED |
未知属性。如果服务器返回此值,客户端应完全忽略封装的 FullHashDetail。 |
CANARY |
表示不应将 threatType 用于强制执行。 |
FRAME_ONLY |
表示 threatType 仅应用于对框架的强制执行。 |