- คำขอ HTTP
- เนื้อหาคำขอ
- เนื้อหาการตอบกลับ
- ListUpdateRequest
- ข้อจำกัด
- CompressionType
- ListUpdateResponse
- ResponseType
- ThreatEntrySet
- RawHashes
- RawIndices
- RiceDeltaEncoding
- การตรวจสอบข้อผิดพลาด
ดึงข้อมูลการอัปเดตรายการภัยคุกคามล่าสุด ไคลเอ็นต์จะขออัปเดตหลายรายการพร้อมกันได้
คำขอ 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 | 
 สถานะปัจจุบันของไคลเอ็นต์สำหรับรายการที่ขอ (สถานะไคลเอ็นต์ที่เข้ารหัสซึ่งได้รับจากการอัปเดตรายการที่สําเร็จครั้งล่าสุด) สตริงที่เข้ารหัสฐาน 64 | 
| constraints | 
 ข้อจำกัดที่เชื่อมโยงกับคำขอนี้ | 
ข้อจำกัด
ข้อจำกัดสำหรับการอัปเดตนี้
| การแสดง JSON | 
|---|
| {
  "maxUpdateEntries": integer,
  "maxDatabaseEntries": integer,
  "region": string,
  "supportedCompressions": [
    enum ( | 
| ช่อง | |
|---|---|
| maxUpdateEntries | 
 ขนาดสูงสุดในจำนวนรายการ การอัปเดตจะมีรายการไม่เกินค่านี้ จำนวนนี้ควรเป็นเลข 2 ระหว่าง 2**10 ถึง 2**20 หากเป็น 0 แสดงว่าไม่มีการตั้งค่าขีดจำกัดของขนาดการอัปเดตไว้ | 
| maxDatabaseEntries | 
 ตั้งค่าจำนวนรายการสูงสุดที่ไคลเอ็นต์จะมีได้ในฐานข้อมูลในเครื่องสำหรับรายการที่ระบุ จำนวนนี้ควรเป็นเลข 2 ระหว่าง 2**10 ถึง 2**20 หากเป็น 0 แสดงว่าไม่มีการตั้งค่าขีดจำกัดของขนาดฐานข้อมูล | 
| region | 
 ขอรายการสถานที่ตั้งทางภูมิศาสตร์ที่เฉพาะเจาะจง หากไม่ได้ตั้งค่า เซิร์ฟเวอร์อาจเลือกค่าดังกล่าวตามที่อยู่ IP ของผู้ใช้ ต้องใช้รูปแบบ ISO 3166-1 alpha-2 | 
| supportedCompressions[] | 
 ประเภทการบีบอัดที่ไคลเอ็นต์รองรับ | 
| language | 
 ขอรายการสำหรับภาษาที่ระบุ ต้องใช้รูปแบบ ISO 639 alpha-2 | 
| deviceLocation | 
 สถานที่ตั้งทางกายภาพของลูกค้าซึ่งแสดงเป็นรหัสภูมิภาค ISO 31166-1 alpha-2 | 
CompressionType
วิธีต่างๆ ในการบีบอัดชุดรายการภัยคุกคาม
| Enum | |
|---|---|
| COMPRESSION_TYPE_UNSPECIFIED | ไม่รู้จัก | 
| RAW | ข้อมูลดิบที่ไม่ได้บีบอัด | 
| RICE | ข้อมูลที่เข้ารหัส Rice-Golomb | 
ListUpdateResponse
การอัปเดตทีละรายการ
| การแสดง JSON | 
|---|
| { "threatType": enum ( | 
| ช่อง | |
|---|---|
| threatType | 
 ประเภทภัยคุกคามที่ข้อมูลแสดงผล | 
| threatEntryType | 
 รูปแบบของภัยคุกคาม | 
| platformType | 
 ประเภทแพลตฟอร์มที่แสดงข้อมูล | 
| responseType | 
 ประเภทของคำตอบ ซึ่งอาจบ่งชี้ว่าไคลเอ็นต์จำเป็นต้องดำเนินการเมื่อได้รับการตอบกลับ | 
| additions[] | 
 ชุดรายการที่จะเพิ่มไปยังรายการประเภทภัยคุกคามในท้องถิ่น ทำซ้ำเพื่อให้มีการส่งข้อมูลที่บีบอัดและข้อมูลดิบรวมกันในคำตอบเดียว | 
| removals[] | 
 ชุดรายการที่จะนำออกจากรายการของประเภทภัยคุกคามในท้องถิ่น ในทางปฏิบัติ ฟิลด์นี้จะว่างเปล่าหรือมี ThreatEntrySet เพียง 1 รายการเท่านั้น | 
| newClientState | 
 สถานะไคลเอ็นต์ใหม่ในรูปแบบที่เข้ารหัส ไม่โปร่งใสสำหรับไคลเอ็นต์ สตริงที่เข้ารหัสฐาน 64 | 
| checksum | 
 แฮช SHA256 ที่คาดไว้ของสถานะไคลเอ็นต์ ซึ่งก็คือรายการแฮชทั้งหมดที่จัดเรียงแล้วซึ่งมีอยู่ในฐานข้อมูลหลังจากนำอัปเดตที่กำหนดไปใช้ หากสถานะของไคลเอ็นต์ไม่ตรงกับสถานะที่คาดไว้ ไคลเอ็นต์ไม่ต้องสนใจการอัปเดตนี้ แล้วลองอีกครั้งในภายหลัง | 
ResponseType
ประเภทการตอบกลับที่ส่งไปยังไคลเอ็นต์
| Enum | |
|---|---|
| RESPONSE_TYPE_UNSPECIFIED | ไม่รู้จัก | 
| PARTIAL_UPDATE | การอัปเดตบางส่วนจะมีผลกับฐานข้อมูลในเครื่องที่มีอยู่ของไคลเอ็นต์ | 
| FULL_UPDATE | การอัปเดตทั้งหมดจะแทนที่ฐานข้อมูลภายในของไคลเอ็นต์ทั้งหมด ซึ่งหมายความว่าลูกค้าอาจล้าสมัยเป็นอย่างมากหรือเชื่อว่าลูกค้าเสียหาย | 
ThreatEntrySet
ชุดของภัยคุกคามที่ควรเพิ่มหรือนำออกจากฐานข้อมูลในเครื่องของไคลเอ็นต์
| การแสดง JSON | 
|---|
| { "compressionType": enum ( | 
| ช่อง | |
|---|---|
| compressionType | 
 ประเภทการบีบอัดสำหรับรายการในชุดนี้ | 
| rawHashes | 
 รายการรูปแบบ SHA256 ที่เป็นข้อมูลดิบ | 
| rawIndices | 
 ดัชนีการนำออกดิบสำหรับรายการในเครื่อง | 
| riceHashes | 
 คำนำหน้า 4 ไบต์ที่เข้ารหัสของรายการในรูปแบบ SHA256 โดยใช้การเข้ารหัส Golomb-Rice ระบบจะแปลงแฮชเป็น uint32 โดยจัดเรียงจากน้อยไปมาก จากนั้นจะเข้ารหัสแบบเดลต้าและเก็บไว้เป็นข้อมูลที่เข้ารหัส | 
| riceIndices | 
 ดัชนีรายการที่จัดเรียงแบบพจนานุกรมในตัวเครื่องซึ่งเข้ารหัส โดยใช้การเข้ารหัส Golomb-Rice ใช้เพื่อส่งดัชนีการนำออกที่บีบอัด ดัชนีการนำออก (uint32) จะจัดเรียงจากน้อยไปมาก จากนั้นจะเข้ารหัสเดลต้าและจัดเก็บเป็น encryptedData | 
RawHashes
รายการภัยคุกคามที่ไม่ได้บีบอัดในรูปแบบแฮชที่มีความยาวของคำนำหน้าหนึ่งๆ แฮชอาจมีขนาดตั้งแต่ 4 ถึง 32 ไบต์ ส่วนใหญ่จะอยู่ที่ 4 ไบต์ แต่แฮชบางรายการจะยาวขึ้นหากขัดแย้งกับแฮชของ URL ยอดนิยม
ใช้สำหรับส่ง ThreatEntrySet ไปยังไคลเอ็นต์ที่ไม่รองรับการบีบอัด หรือเมื่อส่งแฮชที่ไม่ใช่ 4 ไบต์ไปยังไคลเอ็นต์ที่รองรับการบีบอัด
| การแสดง JSON | 
|---|
| { "prefixSize": integer, "rawHashes": string } | 
| ช่อง | |
|---|---|
| prefixSize | 
 จำนวนไบต์สำหรับคำนำหน้าแต่ละรายการที่เข้ารหัสด้านล่าง ช่องนี้สามารถเป็นช่องใดก็ได้ตั้งแต่ 4 (คำนำหน้าที่สั้นที่สุด) ถึง 32 (แฮช SHA256 แบบเต็ม) | 
| rawHashes | 
 แฮชในรูปแบบไบนารีที่ต่อเข้าด้วยกันเป็นสตริงยาว 1 สตริง แฮชจะจัดเรียงแบบพจนานุกรม สำหรับผู้ใช้ JSON API แฮชจะเข้ารหัส base64 สตริงที่เข้ารหัสฐาน 64 | 
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 ฟิลด์นี้ขาดหายไป (ซึ่งก็คือ 0) หาก  | 
| numEntries | 
 จำนวนรายการที่เข้ารหัสแบบเดลต้าในข้อมูลที่เข้ารหัส หากมีการเข้ารหัสจำนวนเต็มเพียงค่าเดียว ค่านี้จะเป็น 0 และระบบจะจัดเก็บค่าเดียวไว้ใน  | 
| encodedData | 
 เดลต้าที่เข้ารหัสซึ่งเข้ารหัสโดยใช้ตัวแปลงรหัส Golomb-Rice สตริงที่เข้ารหัสฐาน 64 | 
ตรวจสอบข้อผิดพลาด
สถานะที่คาดไว้ของฐานข้อมูลในเครื่องของไคลเอ็นต์
| การแสดง JSON | 
|---|
| { "sha256": string } | 
| ช่อง | |
|---|---|
| sha256 | 
 แฮช SHA256 ของสถานะไคลเอ็นต์ ซึ่งก็คือรายการแฮชทั้งหมดที่จัดเรียงแล้วซึ่งมีอยู่ในฐานข้อมูล สตริงที่เข้ารหัสฐาน 64 | 
