No Storage Real Time Mode

כשלקוחות בוחרים להשתמש בגרסה 5 של הגלישה הבטוחה של Google במצב בזמן אמת ללא אחסון, הלקוח לא צריך לתחזק מסד נתונים מקומי קבוע. עם זאת, הלקוח עדיין נדרש לשמור מטמון מקומי. המטמון המקומי הזה לא צריך להיות באחסון קבוע, ויכול להיות שהוא יימחק אם יש עומס על הזיכרון.

בכל פעם שהלקוח רוצה לבדוק כתובת URL מסוימת, הוא מתחבר לשרת כדי לבצע את הבדיקה. המצב הזה דומה למה שלקוחות של v4 Lookup API עשויים להטמיע.

בהשוואה למצב 'בזמן אמת', במצב הזה יכול להיות שימוש רב יותר ברוחב הפס של הרשת, אבל הוא עשוי להתאים יותר אם ללקוח לא נוח לשמור על מצב מקומי מתמשך.

הליך בדיקת כתובות URL בזמן אמת ללא מסד נתונים מקומי

הפרוצדורה הזו מקבלת כתובת 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. שולחים את expressionHashPrefixes לשרת של הגלישה הבטוחה של Google בגרסה 5 באמצעות RPC SearchHashes או שיטת REST‏ hashes.search. אם אירעה שגיאה (כולל שגיאות רשת, שגיאות HTTP וכו'), מחזירים SAFE. אחרת, התגובה היא response שהתקבלה משרת ה-SB, שהיא רשימה של גיבובים מלאים יחד עם מידע עזר שמזהה את אופי האיום (הנדסה חברתית, תוכנות זדוניות וכו'), וגם את זמן התפוגה של המטמון expiration.
  6. לכל fullHash מתוך response:
    1. הוספה של fullHash למטמון המקומי, יחד עם expiration.
  7. לכל fullHash מתוך response:
    1. isFound היא התוצאה של חיפוש fullHash ב-expressionHashes.
    2. אם הערך של isFound הוא False, ממשיכים בלולאה.
    3. אם isFound הוא True, הפונקציה מחזירה את הערך UNSAFE.
  8. החזרה SAFE.

בדומה למצב בזמן אמת, בהליך הזה לא מצוין בדיוק איך לשלוח את קידומות הגיבוב לשרת. לדוגמה, מקובל שהלקוח ישלח את כל הקידומות expressionHashPrefixes בבקשה אחת, ומקובל גם שהלקוח ישלח כל קידומת בנפרד בבקשות נפרדות לשרת (אולי במקביל).expressionHashPrefixes מותר גם לשלוח קידומות גיבוב לא קשורות או שנוצרו באופן אקראי יחד עם קידומות הגיבוב ב-expressionHashPrefixes, כל עוד מספר קידומות הגיבוב שנשלחות בבקשה אחת לא עולה על 30.