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 Rice-Golomb 인코딩 데이터

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)

로컬 위협 유형의 목록에서 제거할 항목 집합입니다. 실제로 이 필드는 비어 있거나 정확히 하나의 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

Rice-Golomb 인코딩 데이터 압축된 4바이트 해시 또는 압축된 삭제 색인을 전송하는 데 사용됩니다.

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

string (int64 format)

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

riceParameter

integer

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

numEntries

integer

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

encodedData

string (bytes format)

Golomb-Rice 코더를 사용하여 인코딩된 델타

base64 인코딩 문자열입니다.

체크섬

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

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

string (bytes format)

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

base64 인코딩 문자열입니다.