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)

สถานะปัจจุบันของไคลเอ็นต์สำหรับรายการที่ขอ (สถานะไคลเอ็นต์ที่เข้ารหัสซึ่งได้รับจากการอัปเดตรายการที่สําเร็จครั้งล่าสุด)

สตริงที่เข้ารหัสฐาน 64

constraints

object (Constraints)

ข้อจำกัดที่เชื่อมโยงกับคำขอนี้

ข้อจำกัด

ข้อจำกัดสำหรับการอัปเดตนี้

การแสดง JSON
{
  "maxUpdateEntries": integer,
  "maxDatabaseEntries": integer,
  "region": string,
  "supportedCompressions": [
    enum (CompressionType)
  ],
  "language": string,
  "deviceLocation": string
}
ช่อง
maxUpdateEntries

integer

ขนาดสูงสุดในจำนวนรายการ การอัปเดตจะมีรายการไม่เกินค่านี้ จำนวนนี้ควรเป็นเลข 2 ระหว่าง 2**10 ถึง 2**20 หากเป็น 0 แสดงว่าไม่มีการตั้งค่าขีดจำกัดของขนาดการอัปเดตไว้

maxDatabaseEntries

integer

ตั้งค่าจำนวนรายการสูงสุดที่ไคลเอ็นต์จะมีได้ในฐานข้อมูลในเครื่องสำหรับรายการที่ระบุ จำนวนนี้ควรเป็นเลข 2 ระหว่าง 2**10 ถึง 2**20 หากเป็น 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

วิธีต่างๆ ในการบีบอัดชุดรายการภัยคุกคาม

Enum
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 เพียง 1 รายการเท่านั้น

newClientState

string (bytes format)

สถานะไคลเอ็นต์ใหม่ในรูปแบบที่เข้ารหัส ไม่โปร่งใสสำหรับไคลเอ็นต์

สตริงที่เข้ารหัสฐาน 64

checksum

object (Checksum)

แฮช SHA256 ที่คาดไว้ของสถานะไคลเอ็นต์ ซึ่งก็คือรายการแฮชทั้งหมดที่จัดเรียงแล้วซึ่งมีอยู่ในฐานข้อมูลหลังจากนำอัปเดตที่กำหนดไปใช้ หากสถานะของไคลเอ็นต์ไม่ตรงกับสถานะที่คาดไว้ ไคลเอ็นต์ไม่ต้องสนใจการอัปเดตนี้ แล้วลองอีกครั้งในภายหลัง

ResponseType

ประเภทการตอบกลับที่ส่งไปยังไคลเอ็นต์

Enum
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)

คำนำหน้า 4 ไบต์ที่เข้ารหัสของรายการในรูปแบบ SHA256 โดยใช้การเข้ารหัส Golomb-Rice ระบบจะแปลงแฮชเป็น uint32 โดยจัดเรียงจากน้อยไปมาก จากนั้นจะเข้ารหัสแบบเดลต้าและเก็บไว้เป็นข้อมูลที่เข้ารหัส

riceIndices

object (RiceDeltaEncoding)

ดัชนีรายการที่จัดเรียงแบบพจนานุกรมในตัวเครื่องซึ่งเข้ารหัส โดยใช้การเข้ารหัส Golomb-Rice ใช้เพื่อส่งดัชนีการนำออกที่บีบอัด ดัชนีการนำออก (uint32) จะจัดเรียงจากน้อยไปมาก จากนั้นจะเข้ารหัสเดลต้าและจัดเก็บเป็น encryptedData

RawHashes

รายการภัยคุกคามที่ไม่ได้บีบอัดในรูปแบบแฮชที่มีความยาวของคำนำหน้าหนึ่งๆ แฮชอาจมีขนาดตั้งแต่ 4 ถึง 32 ไบต์ ส่วนใหญ่จะอยู่ที่ 4 ไบต์ แต่แฮชบางรายการจะยาวขึ้นหากขัดแย้งกับแฮชของ URL ยอดนิยม

ใช้สำหรับส่ง ThreatEntrySet ไปยังไคลเอ็นต์ที่ไม่รองรับการบีบอัด หรือเมื่อส่งแฮชที่ไม่ใช่ 4 ไบต์ไปยังไคลเอ็นต์ที่รองรับการบีบอัด

การแสดง JSON
{
  "prefixSize": integer,
  "rawHashes": string
}
ช่อง
prefixSize

integer

จำนวนไบต์สำหรับคำนำหน้าแต่ละรายการที่เข้ารหัสด้านล่าง ช่องนี้สามารถเป็นช่องใดก็ได้ตั้งแต่ 4 (คำนำหน้าที่สั้นที่สุด) ถึง 32 (แฮช SHA256 แบบเต็ม)

rawHashes

string (bytes format)

แฮชในรูปแบบไบนารีที่ต่อเข้าด้วยกันเป็นสตริงยาว 1 สตริง แฮชจะจัดเรียงแบบพจนานุกรม สำหรับผู้ใช้ JSON API แฮชจะเข้ารหัส base64

สตริงที่เข้ารหัสฐาน 64

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 ฟิลด์นี้ขาดหายไป (ซึ่งก็คือ 0) หาก numEntries เป็น 0

numEntries

integer

จำนวนรายการที่เข้ารหัสแบบเดลต้าในข้อมูลที่เข้ารหัส หากมีการเข้ารหัสจำนวนเต็มเพียงค่าเดียว ค่านี้จะเป็น 0 และระบบจะจัดเก็บค่าเดียวไว้ใน firstValue

encodedData

string (bytes format)

เดลต้าที่เข้ารหัสซึ่งเข้ารหัสโดยใช้ตัวแปลงรหัส Golomb-Rice

สตริงที่เข้ารหัสฐาน 64

ตรวจสอบข้อผิดพลาด

สถานะที่คาดไว้ของฐานข้อมูลในเครื่องของไคลเอ็นต์

การแสดง JSON
{
  "sha256": string
}
ช่อง
sha256

string (bytes format)

แฮช SHA256 ของสถานะไคลเอ็นต์ ซึ่งก็คือรายการแฮชทั้งหมดที่จัดเรียงแล้วซึ่งมีอยู่ในฐานข้อมูล

สตริงที่เข้ารหัสฐาน 64