- คำขอ 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 |