Local List Mode

เมื่อไคลเอ็นต์เลือกใช้ Google Safe Browsing v5 ในโหมดนี้ ลักษณะการทำงานของไคลเอ็นต์จะคล้ายกับ Update API v4 ยกเว้นการใช้พื้นผิว API ที่ได้รับการปรับปรุงของ v5 ไคลเอ็นต์จะเก็บชุดรายการภัยคุกคามที่จัดรูปแบบเป็นคำนำหน้าแฮช SHA256 ของนิพจน์ URL ของคำต่อท้ายโฮสต์/คำนำหน้าเส้นทางไว้ในฐานข้อมูลภายใน เมื่อใดก็ตามที่ไคลเอ็นต์ต้องการตรวจสอบ URL ที่เฉพาะเจาะจง ระบบจะทำการตรวจสอบโดยใช้รายการภัยคุกคามในเครื่อง หากมีรายการที่ตรงกันเท่านั้น ไคลเอ็นต์จะเชื่อมต่อกับเซิร์ฟเวอร์เพื่อตรวจสอบต่อ

เช่นเดียวกับด้านบน ไคลเอ็นต์จะดูแลแคชในเครื่องซึ่งไม่จำเป็นต้องอยู่ในพื้นที่เก็บข้อมูลถาวร

ขั้นตอนการตรวจสอบ URL ในรายการภัยคุกคามในเครื่อง

นอกจากนี้ ยังมีการดำเนินการตามขั้นตอนนี้เมื่อไคลเอ็นต์ใช้ขั้นตอนโหมดเรียลไทม์และส่งคืนค่า UNSURE

ขั้นตอนนี้จะใช้ URL เดียว u และแสดงผล SAFE หรือ UNSAFE

  1. ให้ expressions เป็นรายการนิพจน์คำต่อท้าย/คำนำหน้าที่สร้างโดย URL u
  2. ให้ expressionHashes เป็นรายการที่องค์ประกอบเป็นแฮช SHA256 ของแต่ละนิพจน์ใน expressions
  3. ให้ expressionHashPrefixes เป็นรายการที่องค์ประกอบคือ 4 ไบต์แรกของแต่ละแฮชใน expressionHashes
  4. สำหรับแต่ละ expressionHashPrefix ของ expressionHashPrefixes ให้ทำดังนี้
    1. ค้นหา expressionHashPrefix ในแคชในเครื่อง
    2. หากพบรายการที่แคชไว้ ให้ทำดังนี้
      1. พิจารณาว่าเวลาปัจจุบันมากกว่าเวลาหมดอายุหรือไม่
      2. หากมากกว่า ให้ทำดังนี้
        1. นำรายการที่แคชที่พบออกจากแคชในเครื่อง
        2. เล่นลูปต่อ
      3. หากไม่มากกว่า ให้ทำดังนี้
        1. นำ expressionHashPrefix นี้ออกจาก expressionHashPrefixes
        2. ตรวจสอบว่าพบแฮชแบบเต็มที่เกี่ยวข้องภายใน expressionHashes ในรายการที่แคชไว้หรือไม่
        3. หากพบ ให้ส่งคืน UNSAFE
        4. หากไม่พบ ให้ดำเนินการต่อในลูป
    3. หากไม่พบรายการที่แคชไว้ ให้ดำเนินการต่อในลูป
  5. สำหรับแต่ละ expressionHashPrefix ของ expressionHashPrefixes ให้ทำดังนี้
    1. ค้นหา expressionHashPrefix ในฐานข้อมูลรายการภัยคุกคามในเครื่อง
    2. หากไม่พบ expressionHashPrefix ในฐานข้อมูลรายการภัยคุกคามในเครื่อง ให้นำออกจาก expressionHashPrefixes
  6. ส่ง expressionHashPrefixes ไปยังเซิร์ฟเวอร์ Google Safe Browsing v5 โดยใช้ RPC SearchHashes หรือเมธอด REST hashes.search หากเกิดข้อผิดพลาด (รวมถึงข้อผิดพลาดเกี่ยวกับเครือข่าย ข้อผิดพลาด HTTP ฯลฯ) ให้แสดงผล SAFE ไม่เช่นนั้น ให้การตอบกลับเป็น response ที่ได้รับจากเซิร์ฟเวอร์ SB ซึ่งเป็นรายการแฮชแบบเต็มพร้อมกับข้อมูลเสริมบางอย่างที่ระบุลักษณะของภัยคุกคาม (วิศวกรรมสังคม มัลแวร์ ฯลฯ) รวมถึงเวลาหมดอายุของแคช expiration
  7. สำหรับแต่ละ fullHash ของ response ให้ทำดังนี้
    1. แทรก fullHash ลงในแคชในเครื่องพร้อมกับ expiration
  8. สำหรับแต่ละ fullHash ของ response ให้ทำดังนี้
    1. ให้ isFound เป็นผลลัพธ์ของการค้นหา fullHash ใน expressionHashes
    2. หาก isFound เป็น False ให้ดำเนินการต่อในลูป
    3. หาก isFound เป็นจริง ให้แสดงผล UNSAFE
  9. กลับ SAFE