- คำขอ HTTP
- พารามิเตอร์การค้นหา
- เนื้อความของคำขอ
- เนื้อหาการตอบกลับ
- FullHash
- FullHashDetail
- ThreatAttribute
ค้นหาแฮชแบบเต็มซึ่งตรงกับคำนำหน้าที่ระบุ
นี่เป็นเมธอดที่กำหนดเองตามที่ระบุไว้ใน https://google.aip.dev/136 (เมธอดที่กำหนดเองหมายถึงเมธอดนี้มีชื่อที่กำหนดเองภายในชื่อเรียกการพัฒนา API ทั่วไปของ Google ไม่ได้หมายถึงการใช้เมธอด HTTP ที่กําหนดเอง)
คำขอ HTTP
GET https://safebrowsing.googleapis.com/v5/hashes:search
URL ใช้ไวยากรณ์การแปลง gRPC
พารามิเตอร์การค้นหา
พารามิเตอร์ | |
---|---|
hashPrefixes[] |
ต้องระบุ คำนำหน้าแฮชที่จะค้นหา ลูกค้าต้องไม่ส่งคำนำหน้าแฮชเกิน 1,000 รายการ อย่างไรก็ตาม ไคลเอ็นต์ไม่ควรส่งคำนำหน้าแฮชเกิน 30 รายการตามขั้นตอนการประมวลผล URL ปัจจุบันคำนำหน้าแฮชแต่ละรายการต้องมีความยาว 4 ไบต์พอดี ซึ่งอาจผ่อนปรนในอนาคต สตริงที่เข้ารหัส Base64 |
เนื้อความของคำขอ
เนื้อหาของคำขอต้องว่างเปล่า
เนื้อหาการตอบกลับ
การตอบกลับที่แสดงหลังจากค้นหาแฮชของภัยคุกคาม
หากไม่พบรายการใดเลย เซิร์ฟเวอร์จะแสดงสถานะ "OK" (รหัสสถานะ HTTP 200) โดยที่ช่อง fullHashes
ว่างเปล่า แทนที่จะแสดงสถานะ NOT_FOUND (รหัสสถานะ HTTP 404)
มีอะไรใหม่ใน V5: มีเส้นแบ่งระหว่าง FullHash
กับ FullHashDetail
ในกรณีที่แฮชแสดงถึงเว็บไซต์ที่มีภัยคุกคามหลายรายการ (เช่น ทั้ง MALWARE และ SOCIAL_ENGINEERING) ก็ไม่จำเป็นต้องส่งแฮชแบบเต็ม 2 ครั้งเหมือนใน V4 นอกจากนี้ เราได้ลดความซับซ้อนของระยะเวลาแคชให้เหลือเพียงช่อง cacheDuration
ช่องเดียว
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
การแสดง JSON |
---|
{
"fullHashes": [
{
object ( |
ช่อง | |
---|---|
fullHashes[] |
รายการที่ไม่เรียงลําดับ รายการแฮชแบบไม่เรียงลำดับที่พบ |
cacheDuration |
ระยะเวลาของแคชฝั่งไคลเอ็นต์ โดยลูกค้าต้องเพิ่มระยะเวลานี้ลงในเวลาปัจจุบันเพื่อระบุเวลาหมดอายุ จากนั้นเวลาหมดอายุจะมีผลกับคำนำหน้าแฮชทั้งหมดที่ไคลเอ็นต์ค้นหาในคำขอ ไม่ว่าจะมีการแสดงแฮชแบบเต็มกี่รายการในการตอบกลับ แม้ว่าเซิร์ฟเวอร์จะไม่แสดงแฮชแบบเต็มสําหรับคำนำหน้าแฮชที่เฉพาะเจาะจง แต่ไคลเอ็นต์ต้องแคชข้อมูลนี้ด้วย เฉพาะในกรณีที่ช่อง สำคัญ: ลูกค้าต้องไม่ถือว่าเซิร์ฟเวอร์จะแสดงระยะเวลาแคชเดียวกันสำหรับการตอบกลับทั้งหมด เซิร์ฟเวอร์อาจเลือกระยะเวลาแคชที่แตกต่างกันสำหรับการตอบกลับแต่ละรายการ ทั้งนี้ขึ้นอยู่กับสถานการณ์ ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย " |
FullHash
แฮชแบบเต็มที่มีการจับคู่อย่างน้อย 1 รายการ
การแสดง JSON |
---|
{
"fullHash": string,
"fullHashDetails": [
{
object ( |
ช่อง | |
---|---|
fullHash |
แฮชแบบเต็มที่ตรงกัน เงื่อนไขนี้คือแฮช SHA256 ความยาวจะเป็น 32 ไบต์ สตริงที่เข้ารหัส Base64 |
fullHashDetails[] |
รายการที่ไม่เรียงลําดับ ช่องที่ซ้ำกันซึ่งระบุรายละเอียดที่เกี่ยวข้องกับแฮชแบบเต็มนี้ |
FullHashDetail
รายละเอียดเกี่ยวกับแฮชแบบเต็มที่ตรงกัน
หมายเหตุสำคัญเกี่ยวกับการเข้ากันได้แบบย้อนหลัง: เซิร์ฟเวอร์อาจเพิ่มประเภทภัยคุกคามและแอตทริบิวต์ภัยคุกคามใหม่ๆ ได้ทุกเมื่อ ซึ่งถือว่าเป็นการเปลี่ยนแปลงเวอร์ชันเล็กน้อย นโยบายของ Google คือไม่แสดงหมายเลขเวอร์ชันย่อยใน API (ดูนโยบายการระบุเวอร์ชันได้ที่ https://cloud.google.com/apis/design/versioning) ดังนั้นไคลเอ็นต์จึงต้องเตรียมพร้อมที่จะรับข้อความ FullHashDetail
ที่มีค่า ThreatType
enum หรือค่า ThreatAttribute
enum ที่ไคลเอ็นต์ถือว่าไม่ถูกต้อง ดังนั้น ไคลเอ็นต์มีหน้าที่ตรวจสอบความถูกต้องของค่า ThreatType
และ ThreatAttribute
ทั้งหมด หากค่าใดถือว่าไม่ถูกต้อง ไคลเอ็นต์ต้องไม่สนใจข้อความ FullHashDetail
ทั้งหมด
การแสดง JSON |
---|
{ "threatType": enum ( |
ช่อง | |
---|---|
threatType |
ประเภทของภัยคุกคาม ช่องนี้จะไม่มีวันว่างเปล่า |
attributes[] |
รายการที่ไม่เรียงลําดับ แอตทริบิวต์เพิ่มเติมเกี่ยวกับแฮชแบบเต็มเหล่านั้น ช่องนี้อาจว่างเปล่า |
ThreatAttribute
แอตทริบิวต์ของภัยคุกคาม แอตทริบิวต์เหล่านี้อาจให้ความหมายเพิ่มเติมแก่ภัยคุกคามหนึ่งๆ แต่ไม่ส่งผลต่อประเภทภัยคุกคาม เช่น แอตทริบิวต์หนึ่งอาจระบุความเชื่อมั่นที่ต่ำลง ขณะที่แอตทริบิวต์อื่นอาจระบุความเชื่อมั่นที่สูงกว่า ทั้งนี้อาจมีการเพิ่มแอตทริบิวต์อื่นๆ ในอนาคต
Enum | |
---|---|
THREAT_ATTRIBUTE_UNSPECIFIED |
แอตทริบิวต์ที่ไม่รู้จัก หากเซิร์ฟเวอร์แสดงผลค่านี้ ไคลเอ็นต์จะไม่สนใจ FullHashDetail ที่แนบมาโดยสิ้นเชิง |
CANARY |
ระบุว่าไม่ควรใช้ threatType เพื่อบังคับใช้ |
FRAME_ONLY |
ระบุว่าควรใช้ threatType สำหรับการบังคับใช้ในเฟรมเท่านั้น |