Real Time Mode

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

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

ดูรายละเอียดข้อกำหนดของกระบวนการได้ที่ด้านล่าง

ขั้นตอนการตรวจสอบ URL แบบเรียลไทม์

ขั้นตอนนี้จะใช้ URL เดียว u และแสดงผล SAFE, UNSAFE หรือ UNSURE หากแสดง SAFE แสดงว่า Google Safe Browsing ถือว่า URL นั้นปลอดภัย หากแสดงผลเป็น UNSAFE Google Safe Browsing ถือว่า URL อาจไม่ปลอดภัยและควรดำเนินการที่เหมาะสม เช่น แสดงคำเตือนต่อผู้ใช้ปลายทาง ย้ายข้อความที่ได้รับไปยังโฟลเดอร์จดหมายขยะ หรือกำหนดให้ผู้ใช้ยืนยันเพิ่มเติมก่อนดำเนินการต่อ หากส่งคืน UNSURE คุณควรใช้ขั้นตอนการตรวจสอบในเครื่องต่อไปนี้

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

แม้ว่าโปรโตคอลนี้จะระบุเวลาที่ไคลเอ็นต์ส่ง expressionHashPrefixes ไปยังเซิร์ฟเวอร์ แต่โปรโตคอลนี้ไม่ได้ระบุวิธีส่งอย่างชัดเจน เช่น ลูกค้าสามารถส่ง expressionHashPrefixes ทั้งหมดในคำขอเดียวได้ และยังสามารถส่งแต่ละคำนำหน้าใน expressionHashPrefixes ไปยังเซิร์ฟเวอร์ในคำขอแยกกันได้ (อาจดำเนินการแบบขนาน) นอกจากนี้ ไคลเอ็นต์ยังส่งคำนำหน้าแฮชที่ไม่เกี่ยวข้องหรือสร้างขึ้นแบบสุ่มพร้อมกับคำนำหน้าแฮชใน expressionHashPrefixes ได้ด้วย ตราบใดที่จำนวนคำนำหน้าแฮชที่ส่งในคำขอเดียวไม่เกิน 30 รายการ