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 ระหว่าง 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 เพียงรายการเดียว

newClientState

string (bytes format)

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

สตริงที่เข้ารหัสแบบ Base64

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 โดยจัดเรียงจากน้อยไปหามาก จากนั้นมีการเข้ารหัสแบบเดลต้าและจัดเก็บเป็น encryptedData

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

สตริงที่เข้ารหัสแบบ 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