Method: threatListUpdates.fetch

최신 위협 목록 업데이트를 가져옵니다. 클라이언트는 여러 목록에 대한 업데이트를 한 번에 요청할 수 있습니다.

HTTP 요청

POST https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch

URL은 gRPC 트랜스코딩 구문을 사용합니다.

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

JSON 표현
{
  "client": {
    object (ClientInfo)
  },
  "listUpdateRequests": [
    {
      object (ListUpdateRequest)
    }
  ]
}
필드
client

object (ClientInfo)

클라이언트 메타데이터입니다.

listUpdateRequests[]

object (ListUpdateRequest)

요청한 위협 목록이 업데이트됩니다.

응답 본문

성공한 경우 응답 본문은 다음과 같은 구조의 데이터를 포함합니다.

JSON 표현
{
  "listUpdateResponses": [
    {
      object (ListUpdateResponse)
    }
  ],
  "minimumWaitDuration": string
}
필드
listUpdateResponses[]

object (ListUpdateResponse)

클라이언트가 요청한 목록 업데이트입니다. 여기에 표시된 응답 수는 클라이언트가 보낸 요청 수보다 적을 수 있습니다. 서버에 특정 목록에 관한 업데이트가 없는 경우가 여기에 해당합니다.

minimumWaitDuration

string (Duration format)

클라이언트가 업데이트 요청을 실행하기 전에 대기해야 하는 최소 기간입니다. 이 필드를 설정하지 않으면 클라이언트가 원하는 즉시 업데이트될 수 있습니다.

초 단위 기간으로, 소수점 아래 9자리까지 지정 가능하며 's'로 끝납니다(예: "3.5s").

ListUpdateRequest

단일 목록 업데이트 요청입니다.

JSON 표현
{
  "threatType": enum (ThreatType),
  "platformType": enum (PlatformType),
  "threatEntryType": enum (ThreatEntryType),
  "state": string,
  "constraints": {
    object (Constraints)
  }
}
필드
threatType

enum (ThreatType)

목록에 있는 항목별로 발생하는 위협 유형입니다.

platformType

enum (PlatformType)

목록에 있는 항목별로 위험할 수 있는 플랫폼의 유형입니다.

threatEntryType

enum (ThreatEntryType)

목록에 있는 항목의 유형입니다.

state

string (bytes format)

요청된 목록에 대한 클라이언트의 현재 상태 (마지막으로 성공적인 목록 업데이트에서 수신된 암호화된 클라이언트 상태)입니다.

base64 인코딩 문자열입니다.

constraints

object (Constraints)

이 요청과 연결된 제약조건입니다.

제약 조건

이 업데이트의 제약 조건입니다.

JSON 표현
{
  "maxUpdateEntries": integer,
  "maxDatabaseEntries": integer,
  "region": string,
  "supportedCompressions": [
    enum (CompressionType)
  ],
  "language": string,
  "deviceLocation": string
}
필드
maxUpdateEntries

integer

항목 수의 최대 크기입니다. 업데이트에 이 값보다 더 많은 항목이 포함되지 않습니다. 2**10과 2**20 사이의 2제곱이어야 합니다. 0인 경우 업데이트 크기 제한이 설정되지 않습니다.

maxDatabaseEntries

integer

클라이언트가 지정된 목록의 로컬 데이터베이스에 포함하려는 최대 항목 수를 설정합니다. 2**10과 2**20 사이의 2제곱이어야 합니다. 0이면 데이터베이스 크기 한도가 설정되지 않습니다.

region

string

특정 지리적 위치의 목록을 요청합니다. 설정하지 않으면 서버에서 사용자의 IP 주소를 기준으로 해당 값을 선택할 수 있습니다. ISO 3166-1 alpha-2 형식이 필요합니다.

supportedCompressions[]

enum (CompressionType)

클라이언트에서 지원하는 압축 유형입니다.

language

string

특정 언어의 목록을 요청합니다. ISO 639 alpha-2 형식이 필요합니다.

deviceLocation

string

클라이언트의 실제 위치로, ISO 31166-1 alpha-2 지역 코드로 표현됩니다.

CompressionType

위협 항목 세트를 압축할 수 있는 방식입니다.

열거형
COMPRESSION_TYPE_UNSPECIFIED 알 수 없는 작업입니다.
RAW 압축되지 않은 원시 데이터
RICE 라이스 골롬 인코딩 데이터입니다.

ListUpdateResponse

개별 목록 업데이트입니다.

JSON 표현
{
  "threatType": enum (ThreatType),
  "threatEntryType": enum (ThreatEntryType),
  "platformType": enum (PlatformType),
  "responseType": enum (ResponseType),
  "additions": [
    {
      object (ThreatEntrySet)
    }
  ],
  "removals": [
    {
      object (ThreatEntrySet)
    }
  ],
  "newClientState": string,
  "checksum": {
    object (Checksum)
  }
}
필드
threatType

enum (ThreatType)

데이터가 반환되는 위협 유형입니다.

threatEntryType

enum (ThreatEntryType)

위협의 형식

platformType

enum (PlatformType)

데이터가 반환되는 플랫폼 유형입니다.

responseType

enum (ResponseType)

응답 유형입니다. 이는 응답을 수신했을 때 클라이언트에서 작업이 필요함을 나타낼 수 있습니다.

additions[]

object (ThreatEntrySet)

로컬 위협 유형 목록에 추가할 항목 집합입니다. 압축된 데이터와 원시 데이터의 조합을 단일 응답으로 전송하기 위해 반복합니다.

removals[]

object (ThreatEntrySet)

로컬 위협 유형 목록에서 삭제할 항목 집합입니다. 실제로 이 필드는 비어 있거나 정확히 1개의 ThreatEntrySet을 포함합니다.

newClientState

string (bytes format)

암호화된 형식의 새 클라이언트 상태입니다. 클라이언트에 불투명합니다.

base64 인코딩 문자열입니다.

checksum

object (Checksum)

클라이언트 상태의 예상 SHA256 해시입니다. 즉, 제공된 업데이트를 적용한 후 데이터베이스에 있는 모든 해시의 정렬된 목록입니다. 클라이언트 상태가 예상 상태와 일치하지 않으면 클라이언트는 이 업데이트를 무시하고 나중에 다시 시도해야 합니다.

ResponseType

클라이언트에 전송된 응답 유형입니다.

열거형
RESPONSE_TYPE_UNSPECIFIED 알 수 없는 작업입니다.
PARTIAL_UPDATE 부분 업데이트는 클라이언트의 기존 로컬 데이터베이스에 적용됩니다.
FULL_UPDATE 전체 업데이트는 클라이언트의 전체 로컬 데이터베이스를 대체합니다. 클라이언트가 심각하게 오래되었거나 클라이언트가 손상된 것으로 생각되었음을 의미합니다.

ThreatEntrySet

클라이언트의 로컬 데이터베이스에서 추가 또는 삭제되어야 하는 일련의 위협입니다.

JSON 표현
{
  "compressionType": enum (CompressionType),
  "rawHashes": {
    object (RawHashes)
  },
  "rawIndices": {
    object (RawIndices)
  },
  "riceHashes": {
    object (RiceDeltaEncoding)
  },
  "riceIndices": {
    object (RiceDeltaEncoding)
  }
}
필드
compressionType

enum (CompressionType)

이 집합에 있는 항목의 압축 유형입니다.

rawHashes

object (RawHashes)

원시 SHA256 형식의 항목입니다.

rawIndices

object (RawIndices)

로컬 목록의 원시 삭제 색인입니다.

riceHashes

object (RiceDeltaEncoding)

Golomb-Rice 인코딩을 사용하여 SHA256 형식 항목의 인코딩된 4바이트 프리픽스입니다. 해시는 uint32로 변환되고 오름차순으로 정렬된 다음 델타 인코딩되어 encodedData로 저장됩니다.

riceIndices

object (RiceDeltaEncoding)

Golomb-Rice 인코딩을 사용하여 인코딩된 로컬 사전순으로 정렬된 목록 색인입니다. 압축된 삭제 색인을 전송하는 데 사용됩니다. 삭제 색인 (uint32)은 오름차순으로 정렬된 후 델타로 인코딩되어 encodedData로 저장됩니다.

RawHashes

특정 프리픽스 길이의 해시 형식으로 된 압축되지 않은 위협 항목 해시의 크기는 4~32바이트일 수 있습니다. 대부분은 4바이트이지만 인기 URL의 해시와 충돌하면 일부 해시가 길어집니다.

압축을 지원하지 않는 클라이언트로 ThreatEntrySet을 전송하거나 압축을 지원하는 클라이언트에 4바이트가 아닌 해시를 전송할 때 사용됩니다.

JSON 표현
{
  "prefixSize": integer,
  "rawHashes": string
}
필드
prefixSize

integer

아래에 인코딩된 각 프리픽스의 바이트 수입니다. 이 필드는 4 (가장 짧은 프리픽스)에서 32 (전체 SHA256 해시)까지 가능합니다.

rawHashes

string (bytes format)

바이너리 형식의 해시는 하나의 긴 문자열로 연결됩니다. 해시는 사전순으로 정렬됩니다. JSON API 사용자의 경우 해시가 base64로 인코딩됩니다.

base64 인코딩 문자열입니다.

RawIndices

로컬 목록에서 삭제할 원시 색인 집합입니다.

JSON 표현
{
  "indices": [
    integer
  ]
}
필드
indices[]

integer

사전순으로 정렬된 지역 목록에서 삭제할 색인입니다.

RiceDeltaEncoding

라이스 골롬이 인코딩된 데이터입니다. 압축된 4바이트 해시 또는 압축된 삭제 색인을 전송하는 데 사용됩니다.

JSON 표현
{
  "firstValue": string,
  "riceParameter": integer,
  "numEntries": integer,
  "encodedData": string
}
필드
firstValue

string (int64 format)

인코딩된 데이터에서 첫 번째 항목의 오프셋입니다. 하나의 정수만 인코딩된 경우 단일 정수의 값입니다. 필드가 비어 있거나 누락된 경우 0으로 가정합니다.

riceParameter

integer

2~28 사이의 숫자인 Golomb-Rice 매개변수입니다. numEntries가 0이면 이 필드가 누락됩니다 (0).

numEntries

integer

인코딩된 데이터에서 델타로 인코딩된 항목 수입니다. 하나의 정수만 인코딩되었다면 0이 되고 단일 값은 firstValue에 저장됩니다.

encodedData

string (bytes format)

Golomb-Rice 코더를 사용하여 인코딩된 인코딩된 델타입니다.

base64 인코딩 문자열입니다.

체크섬

클라이언트의 로컬 데이터베이스의 예상 상태입니다.

JSON 표현
{
  "sha256": string
}
필드
sha256

string (bytes format)

클라이언트 상태의 SHA256 해시입니다. 즉, 데이터베이스에 있는 모든 해시의 정렬된 목록입니다.

base64 인코딩 문자열입니다.