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