כשלקוחות בוחרים להשתמש בגרסה 5 של הגלישה הבטוחה של Google במצב הזה, התנהגות הלקוח דומה ל-API של עדכון גרסה 4, רק שהיא משתמשת בממשק API משופר של גרסה 5. הלקוחות ישמרו במסד הנתונים המקומי שלהם קבוצה של רשימות איומים בפורמט של קידומות גיבוב SHA256 של ביטויי כתובות URL של סיומת מארח או קידומת נתיב. בכל פעם שהלקוח רוצה לבדוק כתובת URL מסוימת, מתבצעת בדיקה באמצעות רשימת האיומים המקומית. אם יש התאמה, הלקוח מתחבר לשרת כדי להמשיך בבדיקה.
כמו בדוגמה שלמעלה, הלקוח ישמור גם מטמון מקומי שלא צריך להיות באחסון קבוע.
הליך בדיקת כתובות URL ברשימת האיומים המקומית
התהליך הזה מתבצע גם כשהלקוח משתמש בתהליך Real-Time Mode והוא מחזיר את הערך UNSURE.
הפרוצדורה הזו מקבלת כתובת URL אחת u ומחזירה SAFE או UNSAFE.
-
expressionsהיא רשימה של ביטויי סיומת או תחילית שנוצרו על ידי כתובת ה-URLu. -
expressionHashesהיא רשימה שבה כל רכיב הוא גיבוב SHA256 של כל ביטוי ב-expressions. -
expressionHashPrefixesהיא רשימה שבה הרכיבים הם 4 הבייטים הראשונים של כל גיבוב ב-expressionHashes. - לכל
expressionHashPrefixמתוךexpressionHashPrefixes:- מחפשים את
expressionHashPrefixבמטמון המקומי. - אם נמצאה רשומה במטמון:
- הפונקציה בודקת אם השעה הנוכחית גדולה משעת התפוגה.
- אם הוא גדול יותר:
- מסירים את הרשומה שנמצאה במטמון מהמטמון המקומי.
- ממשיכים עם הלולאה.
- אם הוא לא גדול יותר:
- הסרת
expressionHashPrefixהספציפי הזה מexpressionHashPrefixes. - בודקים אם הגיבוב המלא התואם ב-
expressionHashesנמצא ברשומה שבמטמון. - אם נמצא, מחזירה
UNSAFE. - אם לא נמצאה, ממשיכים בלולאה.
- הסרת
- אם לא נמצאה רשומה במטמון, ממשיכים בלולאה.
- מחפשים את
- לכל
expressionHashPrefixמתוךexpressionHashPrefixes:- מחפשים את
expressionHashPrefixבמסד הנתונים של רשימת האיומים המקומיים. - אם אי אפשר למצוא את
expressionHashPrefixבמסד הנתונים של רשימת האיומים המקומיים, צריך להסיר אותו מ-expressionHashPrefixes.
- מחפשים את
- שולחים את
expressionHashPrefixesלשרת של הגלישה הבטוחה של Google בגרסה 5 באמצעות RPC SearchHashes או שיטת REST hashes.search. אם אירעה שגיאה (כולל שגיאות רשת, שגיאות HTTP וכו'), מחזיריםSAFE. אחרת, התגובה היאresponseשהתקבלה משרת ה-SB, שהיא רשימה של גיבובים מלאים יחד עם מידע עזר שמזהה את אופי האיום (הנדסה חברתית, תוכנות זדוניות וכו'), וגם את זמן התפוגה של המטמוןexpiration. - לכל
fullHashמתוךresponse:- הוספה של
fullHashלמטמון המקומי, יחד עםexpiration.
- הוספה של
- לכל
fullHashמתוךresponse:-
isFoundהיא התוצאה של חיפושfullHashב-expressionHashes. - אם הערך של
isFoundהוא False, ממשיכים בלולאה. - אם
isFoundהוא True, הפונקציה מחזירה את הערךUNSAFE.
-
- החזרה
SAFE.