- HTTP 요청
- 요청 본문
- 응답 본문
- ListUpdateRequest
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- 제약조건
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- CompressionType
- ListUpdateResponse
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- ResponseType
- ThreatEntrySet
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- RawHashes
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- RawIndices
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- RiceDeltaEncoding
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- 체크섬
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
최신 위협 목록 업데이트를 가져옵니다. 클라이언트는 한 번에 여러 목록의 업데이트를 요청할 수 있습니다.
HTTP 요청
POST https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch
URL은 gRPC 트랜스코딩 구문을 사용합니다.
요청 본문
요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.
JSON 표현 |
---|
{ "client": { object ( |
필드 | |
---|---|
client |
클라이언트 메타데이터입니다. |
listUpdateRequests[] |
요청된 위협 목록이 업데이트됩니다. |
응답 본문
성공한 경우 응답 본문은 다음과 같은 구조의 데이터를 포함합니다.
JSON 표현 |
---|
{
"listUpdateResponses": [
{
object ( |
필드 | |
---|---|
listUpdateResponses[] |
클라이언트가 요청한 목록 업데이트입니다. 여기서 응답 수는 클라이언트가 보낸 요청 수보다 적을 수 있습니다. 서버에 특정 목록에 대한 업데이트가 없는 경우를 예로 들 수 있습니다. |
minimumWaitDuration |
클라이언트가 업데이트 요청을 전송하기 전에 기다려야 하는 최소 기간입니다. 이 필드가 설정되지 않으면 클라이언트가 원하는 즉시 업데이트될 수 있습니다. 소수점 아래가 최대 9자리까지이고 ' |
ListUpdateRequest
단일 목록 업데이트 요청입니다.
JSON 표현 |
---|
{ "threatType": enum ( |
필드 | |
---|---|
threatType |
목록에 있는 항목이 제기하는 위협 유형입니다. |
platformType |
목록에 있는 항목별로 위험성이 있는 플랫폼 유형입니다. |
threatEntryType |
목록에 있는 항목 유형입니다. |
state |
요청된 목록에 대한 클라이언트의 현재 상태입니다 (마지막으로 목록 업데이트에서 수신된 암호화된 클라이언트 상태). base64 인코딩 문자열입니다. |
constraints |
이 요청과 연결된 제약 조건입니다. |
제약조건
이 업데이트의 제약 조건입니다.
JSON 표현 |
---|
{
"maxUpdateEntries": integer,
"maxDatabaseEntries": integer,
"region": string,
"supportedCompressions": [
enum ( |
필드 | |
---|---|
maxUpdateEntries |
항목 수의 최대 크기입니다. 업데이트에 이 값을 초과하는 항목이 포함되지 않습니다. 이 값은 2**10과 2**20 사이의 2제곱이어야 합니다. 0이면 업데이트 크기 제한이 설정되지 않습니다. |
maxDatabaseEntries |
지정된 목록에 대해 클라이언트가 로컬 데이터베이스에 포함할 최대 항목 수를 설정합니다. 이 값은 2**10과 2**20 사이의 2제곱이어야 합니다. 0이면 데이터베이스 크기 한도가 설정되지 않습니다. |
region |
특정 지리적 위치의 목록을 요청합니다. 설정하지 않으면 서버에서 사용자의 IP 주소를 기반으로 해당 값을 선택할 수 있습니다. ISO 3166-1 alpha-2 형식이 필요합니다. |
supportedCompressions[] |
클라이언트에서 지원하는 압축 유형입니다. |
language |
특정 언어에 대한 목록을 요청합니다. ISO 639 alpha-2 형식을 예상합니다. |
deviceLocation |
클라이언트의 실제 위치로, ISO 31166-1 alpha-2 지역 코드로 표현됩니다. |
CompressionType
위협 엔트리 세트를 압축하는 방식.
열거형 | |
---|---|
COMPRESSION_TYPE_UNSPECIFIED |
알 수 없음 |
RAW |
무압축 원시 데이터입니다. |
RICE |
Rice-Golomb 인코딩 데이터 |
ListUpdateResponse
개별 목록 업데이트
JSON 표현 |
---|
{ "threatType": enum ( |
필드 | |
---|---|
threatType |
데이터가 반환되는 위협 유형입니다. |
threatEntryType |
위협의 형식입니다. |
platformType |
데이터가 반환되는 플랫폼 유형입니다. |
responseType |
응답 유형입니다. 이는 응답이 수신될 때 클라이언트가 조치를 취해야 함을 나타낼 수도 있습니다. |
additions[] |
로컬 위협 유형의 목록에 추가할 항목 집합입니다. 압축된 데이터와 원시 데이터의 조합을 단일 응답으로 전송할 수 있도록 반복합니다. |
removals[] |
로컬 위협 유형의 목록에서 제거할 항목 집합입니다. 실제로 이 필드는 비어 있거나 정확히 하나의 ThreatEntrySet를 포함합니다. |
newClientState |
암호화된 형식의 새 클라이언트 상태입니다. 클라이언트에 불투명합니다. base64 인코딩 문자열입니다. |
checksum |
클라이언트 상태의 예상 SHA256 해시입니다. 즉, 제공된 업데이트를 적용한 후 데이터베이스에 존재하는 모든 해시의 정렬된 목록 중 하나입니다. 클라이언트 상태가 예상 상태와 일치하지 않으면 클라이언트는 이 업데이트를 무시하고 나중에 다시 시도해야 합니다. |
ResponseType
클라이언트로 전송되는 응답 유형입니다.
열거형 | |
---|---|
RESPONSE_TYPE_UNSPECIFIED |
알 수 없음 |
PARTIAL_UPDATE |
부분 업데이트는 클라이언트의 기존 로컬 데이터베이스에 적용됩니다. |
FULL_UPDATE |
전체 업데이트는 클라이언트의 전체 로컬 데이터베이스를 대체합니다. 클라이언트가 심각하게 오래되었거나 클라이언트가 손상된 것으로 보입니다. |
ThreatEntrySet
클라이언트의 로컬 데이터베이스에서 추가 또는 제거해야 하는 위협 집합입니다.
JSON 표현 |
---|
{ "compressionType": enum ( |
필드 | |
---|---|
compressionType |
이 집합에 있는 항목의 압축 유형입니다. |
rawHashes |
원시 SHA256 형식의 항목입니다. |
rawIndices |
로컬 목록의 원시 삭제 색인입니다. |
riceHashes |
Golomb-Rice 인코딩을 사용하는 SHA256 형식 항목의 인코딩된 4바이트 접두사입니다. 해시는 uint32로 변환되고 오름차순으로 정렬된 다음 델타로 인코딩되어 encodedData로 저장됩니다. |
riceIndices |
Golomb-Rice 인코딩을 사용하여 인코딩된 로컬 사전순 정렬 목록 색인입니다. 압축된 삭제 색인을 전송하는 데 사용됩니다. 삭제 색인 (uint32)은 오름차순으로 정렬된 다음 델타로 인코딩되고 encodedData로 저장됩니다. |
RawHashes
특정 프리픽스 길이의 해시 형식으로 된 압축되지 않은 위협 항목. 해시의 크기는 4~32바이트일 수 있습니다. 대부분은 4바이트이지만 일부 해시는 인기 URL의 해시와 충돌하는 경우 길어집니다.
압축을 지원하지 않는 클라이언트에 ThreatEntrySet를 전송하거나 압축을 지원하는 클라이언트에 4바이트가 아닌 해시를 전송하는 데 사용됩니다.
JSON 표현 |
---|
{ "prefixSize": integer, "rawHashes": string } |
필드 | |
---|---|
prefixSize |
아래에 인코딩된 각 접두사의 바이트 수입니다. 이 필드는 4 (가장 짧은 프리픽스)에서 32 (전체 SHA256 해시)까지일 수 있습니다. |
rawHashes |
바이너리 형식의 해시로, 하나의 긴 문자열로 연결됩니다. 해시는 사전순으로 정렬됩니다. JSON API 사용자의 경우 해시는 base64로 인코딩됩니다. base64 인코딩 문자열입니다. |
RawIndices
로컬 목록에서 삭제할 원시 색인 집합입니다.
JSON 표현 |
---|
{ "indices": [ integer ] } |
필드 | |
---|---|
indices[] |
사전순으로 정렬된 로컬 목록에서 삭제할 색인입니다. |
RiceDeltaEncoding
Rice-Golomb 인코딩 데이터 압축된 4바이트 해시 또는 압축된 삭제 색인을 전송하는 데 사용됩니다.
JSON 표현 |
---|
{ "firstValue": string, "riceParameter": integer, "numEntries": integer, "encodedData": string } |
필드 | |
---|---|
firstValue |
인코딩된 데이터에서 첫 번째 항목의 오프셋 또는 단일 정수만 인코딩된 경우 단일 정수의 값입니다. 필드가 비어 있거나 누락된 경우 0으로 가정합니다. |
riceParameter |
Golomb-Rice 매개변수. 2에서 28 사이의 숫자입니다. |
numEntries |
인코딩된 데이터에서 델타로 인코딩된 항목 수입니다. 하나의 정수만 인코딩된 경우 0이 되고 단일 값은 |
encodedData |
Golomb-Rice 코더를 사용하여 인코딩된 델타 base64 인코딩 문자열입니다. |
체크섬
클라이언트 로컬 데이터베이스의 예상 상태입니다.
JSON 표현 |
---|
{ "sha256": string } |
필드 | |
---|---|
sha256 |
클라이언트 상태의 SHA256 해시입니다. 즉, 데이터베이스에 있는 모든 해시의 정렬된 목록 중 하나입니다. base64 인코딩 문자열입니다. |