Local List Mode

وقتی کلاینت‌ها در این حالت از Google Safe Browsing v5 استفاده می‌کنند، رفتار کلاینت مشابه به‌روزرسانی API نسخه ۴ است، با این تفاوت که از API surface بهبود یافته نسخه ۵ استفاده می‌کند. کلاینت‌ها در پایگاه داده محلی خود مجموعه‌ای از لیست‌های تهدید را که به صورت پیشوندهای هش SHA256 از عبارات URL با پسوند میزبان/پیشوند مسیر قالب‌بندی شده‌اند، نگهداری می‌کنند. هر زمان که کلاینت بخواهد یک URL خاص را بررسی کند، بررسی با استفاده از لیست تهدید محلی انجام می‌شود. اگر و فقط اگر تطابقی وجود داشته باشد، کلاینت برای ادامه بررسی به سرور متصل می‌شود.

همانند موارد فوق، کلاینت یک حافظه پنهان محلی نیز نگهداری خواهد کرد که نیازی به ذخیره دائمی ندارد.

رویه بررسی URL فهرست تهدیدهای محلی

این رویه همچنین زمانی که کلاینت از رویه حالت بلادرنگ (Real-Time Mode) استفاده می‌کند، انجام می‌شود و مقدار UNSURE برمی‌گرداند.

این روال یک URL واحد u را می‌گیرد و SAFE یا UNSAFE را برمی‌گرداند.

  1. فرض کنید expressions فهرستی از عبارات پسوند/پیشوند تولید شده توسط URL u باشند.
  2. فرض کنید expressionHashes یک لیست باشد که عناصر آن، هش‌های SHA256 هر عبارت در expressions هستند.
  3. فرض کنید expressionHashPrefixes یک لیست باشد که عناصر آن، ۴ بایت اول هر هش در 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 به سرور مرور ایمن گوگل نسخه ۵ با استفاده از RPC SearchHashes یا متد REST hashes.search . اگر خطایی رخ داد (از جمله خطاهای شبکه، خطاهای HTTP و غیره)، SAFE را برگردانید. در غیر این صورت، اجازه دهید response response دریافتی از سرور SB باشد که لیستی از هش‌های کامل به همراه برخی اطلاعات کمکی است که ماهیت تهدید (مهندسی اجتماعی، بدافزار و غیره) و همچنین زمان انقضای حافظه پنهان expiration مشخص می‌کند.
  7. برای هر fullHash از response :
    1. دستور fullHash به همراه expiration در حافظه پنهان محلی قرار دهید.
  8. برای هر fullHash از response :
    1. فرض کنید isFound نتیجه یافتن fullHash در expressionHashes باشد.
    2. اگر isFound برابر با False باشد، حلقه را ادامه بده.
    3. اگر isFound برابر با True باشد، مقدار UNSAFE را برمی‌گرداند.
  9. بازگشت SAFE .