- คำขอ 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 รายการ อย่างไรก็ตาม ตามขั้นตอนการประมวลผล URL แล้ว ไคลเอ็นต์ไม่ควรต้องส่งคำนำหน้าแฮชมากกว่า 30 รายการ ปัจจุบันคำนำหน้าแฮชแต่ละรายการต้องมีความยาว 4 ไบต์พอดี ซึ่งอาจมีการผ่อนปรนในอนาคต สตริงที่เข้ารหัส Base64 |
เนื้อความของคำขอ
เนื้อหาของคำขอต้องว่างเปล่า
เนื้อหาการตอบกลับ
การตอบกลับที่แสดงหลังจากค้นหาแฮชภัยคุกคาม
หากไม่พบอะไรเลย เซิร์ฟเวอร์จะแสดงสถานะ OK (รหัสสถานะ HTTP 200) โดยที่ฟิลด์ fullHashes ว่างเปล่า แทนที่จะแสดงสถานะ NOT_FOUND (รหัสสถานะ HTTP 404)
มีอะไรใหม่ใน V5: มีการแยกส่วนระหว่าง FullHash กับ FullHashDetail ในกรณีที่แฮชแสดงถึงเว็บไซต์ที่มีภัยคุกคามหลายอย่าง (เช่น ทั้งมัลแวร์และวิศวกรรมสังคม) คุณไม่จำเป็นต้องส่งแฮชแบบเต็ม 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 ที่มีค่า enum ThreatType หรือค่า enum ThreatAttribute ที่ไคลเอ็นต์ถือว่าไม่ถูกต้อง ดังนั้น ไคลเอ็นต์จึงมีหน้าที่ตรวจสอบความถูกต้องของค่า enum ทั้งหมดของ ThreatType และ ThreatAttribute หากค่าใดถือว่าไม่ถูกต้อง ไคลเอ็นต์ต้องไม่สนใจข้อความ FullHashDetail ทั้งหมด
| การแสดง JSON |
|---|
{ "threatType": enum ( |
| ช่อง | |
|---|---|
threatType |
ประเภทภัยคุกคาม ช่องนี้จะไม่มีวันว่าง |
attributes[] |
รายการที่ไม่เรียงลำดับ แอตทริบิวต์เพิ่มเติมเกี่ยวกับแฮชแบบเต็มเหล่านั้น ซึ่งอาจเป็นค่าว่าง |
ThreatAttribute
คุณลักษณะของภัยคุกคาม แอตทริบิวต์เหล่านี้อาจให้ความหมายเพิ่มเติมแก่ภัยคุกคามหนึ่งๆ แต่จะไม่มีผลต่อประเภทภัยคุกคาม เช่น แอตทริบิวต์หนึ่งอาจระบุความเชื่อมั่นต่ำ ขณะที่อีกแอตทริบิวต์หนึ่งอาจระบุความเชื่อมั่นสูง ทั้งนี้อาจมีการเพิ่มแอตทริบิวต์อื่นๆ ในอนาคต
| Enum | |
|---|---|
THREAT_ATTRIBUTE_UNSPECIFIED |
แอตทริบิวต์ที่ไม่รู้จัก หากเซิร์ฟเวอร์ส่งคืนค่านี้ ไคลเอ็นต์จะไม่สนใจ FullHashDetail ทั้งหมด |
CANARY |
ระบุว่าไม่ควรใช้ threatType ในการบังคับใช้ |
FRAME_ONLY |
ระบุว่าควรใช้ threatType สำหรับการบังคับใช้กับเฟรมเท่านั้น |